`
phinecos
  • 浏览: 353986 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

POJ2121 Inglish-Number Translator

 
阅读更多
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include<iostream>
#include
<string>
#include
<map>
#include
<algorithm>
usingnamespacestd;

map
<string,int>mapTable;

voidinitMapTable()
{
mapTable[
"zero"]=0;
mapTable[
"one"]=1;
mapTable[
"two"]=2;
mapTable[
"three"]=3;
mapTable[
"four"]=4;
mapTable[
"five"]=5;
mapTable[
"six"]=6;
mapTable[
"seven"]=7;
mapTable[
"eight"]=8;
mapTable[
"nine"]=9;
mapTable[
"ten"]=10;
mapTable[
"eleven"]=11;
mapTable[
"twelve"]=12;
mapTable[
"thirteen"]=13;
mapTable[
"fourteen"]=14;
mapTable[
"fifteen"]=15;
mapTable[
"sixteen"]=16;
mapTable[
"seventeen"]=17;
mapTable[
"eighteen"]=18;
mapTable[
"nineteen"]=19;
mapTable[
"twenty"]=20;
mapTable[
"thirty"]=30;
mapTable[
"forty"]=40;
mapTable[
"fifty"]=50;
mapTable[
"sixty"]=60;
mapTable[
"seventy"]=70;
mapTable[
"eighty"]=80;
mapTable[
"hundred"]=100;
mapTable[
"thousand"]=1000;
mapTable[
"million"]=1000000;
}
voidsolve(string&str)
{
string::size_typepos=str.find_first_of('');
if(pos==string::npos)
{
//只有一个单词
if(str=="negative")
{
cout
<<"-0"<<endl;
}
elseif(mapTable.find(str)!=mapTable.end())
{
cout
<<mapTable[str]<<endl;

}
}
else
{
//至少个单词
stringinput=str;
intsum=0,msum=0,tsum=0,hsum=0;
boolbMinus=false;
intcount=0;
string::iteratorstart=input.begin();
string::iteratorend=input.end();
do
{
stringword;
end
=find(start,input.end(),'');//找到分隔符
copy(start,end,back_inserter(word));
++count;//单词计数
if(word=="negative")
{
bMinus
=true;
}
else
{
if(count==2&&word=="zero")
{
bMinus
=false;
}
intcurNum=mapTable[word];
if(curNum==100)
{
hsum
=sum*100;
sum
=0;
}
elseif(curNum==1000)
{
tsum
=(hsum+sum)*1000;
hsum
=0;
sum
=0;
}
elseif(curNum==1000000)
{
msum
=(tsum+hsum+sum)*1000000;
tsum
=0;
hsum
=0;
sum
=0;
}
else
{
sum
+=curNum;
}
}
if(end==input.end())
{
if(bMinus)
cout
<<"-";
cout
<<msum+tsum+hsum+sum<<endl;
break;
}
start
=++end;
}
while(end!=input.end());
}
}
intmain()
{
stringstr;
initMapTable();
while(getline(cin,str))
{
if(str.length()==0||str.length()==1)
continue;
solve(str);
}
return0;
}
分享到:
评论

相关推荐

    POJ1019-Number Sequence

    【标题】"POJ1019 - Number Sequence" 是北京大学在线编程平台POJ上的一道算法题目。这道题目主要考察的是数列的理解和计算能力,以及编程解决问题的技巧。 【描述】"北大POJ1019-Number Sequence 解题报告+AC代码...

    POJ水题集--50道--增加自信

    POJ水题集-----50道左右-----增加自信啊..

    POJ3211--Washing Clothes

    【标题】"POJ3211--Washing Clothes" 是一个编程竞赛题目,来源于著名的在线编程平台POJ(Programming Online Judge)。这类题目通常要求参赛者编写程序来解决特定问题,以此锻炼和测试他们的编程技能和算法理解能力...

    poj1038--Bugs.rar_Bugs_poj 1038 _poj10_poj1038

    标题中的“poj1038--Bugs.rar”是一个关于解决编程竞赛问题的压缩文件,其中包含了对“Bugs”问题的解答。POJ(Problemset Online Judge)是一个在线编程竞赛平台,它提供了一系列的问题供参赛者解决,旨在锻炼和...

    POJ---1456.Supermarket测试数据及答案

    POJ---1456.Supermarket测试数据及答案,题目描述:A supermarket has a set Prod of products on sale. It earns a profit px for each product x∈Prod sold by a deadline dx that is measured as an integral ...

    POJ3253-POJ3253-Fence Repair【STL优先队列】

    标题“POJ3253-POJ3253-Fence Repair【STL优先队列】”指的是一个在线编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。该题目要求参赛者使用C++编程语言解决特定的问题,并且在解决方案中...

    POJ1038--Bugs Integrated

    【标题】"POJ1038--Bugs Integrated" 是一个编程竞赛题目,来源于著名的在线编程平台POJ(Programming Online Judge)。这类题目通常要求参赛者编写程序来解决特定问题,以此锻炼和测试他们的算法设计和编程能力。在...

    poj 1690 Your-Term-Project.md

    poj 1690 Your-Term-Project.md

    poj 1240 Pre-Post-erous!.md

    poj 1240 Pre-Post-erous!.md

    POJ1390--blocks.rar

    标题“POJ1390--blocks.rar”指的是一个压缩包文件,用于提交给编程竞赛平台POJ(Programming Online Judge)的解决方案。POJ是一个在线的编程竞赛平台,程序员可以在这里提交自己的源代码来解决特定的算法问题。在...

    POJ3036--Honeycomb Walk

    【标题】"POJ3036--Honeycomb Walk" 是一个编程竞赛中的问题,源自著名的在线编程平台POJ(Problem Set)。该题目要求参赛者解决一个与蜂巢行走相关的数学问题,涉及到动态规划和组合优化的概念。 【描述】在...

    POJ3259--Wormholes(bellman).rar_wormhole code _wormholes

    标题中的“POJ3259--Wormholes(bellman)”是指一个编程竞赛问题,源自POJ(Programming Online Judge)平台。这个问题涉及到利用贝尔曼-福特算法(Bellman-Ford Algorithm)解决“虫洞”(Wormholes)的问题。在...

    POJ解题报告--1005

    ### POJ解题报告--1005 #### 题目概述 本题要求编写一个程序,模拟根据地块的半圆面积计算该地块开始侵蚀的年份。具体来说,对于每个地块,输入两个坐标值(x 和 y),分别表示地块在平面直角坐标系中的位置。然后...

    poj 2827 Auto-Calculation Machine.md

    poj 2827 Auto-Calculation Machine.md

    POJ3414-Pots

    标题“POJ3414-Pots”是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这个题目主要考察的是算法设计和实现能力,通常涉及计算机科学中的数据结构和算法知识。 解题报告是参赛者在...

    poj-1028-Web-Navigation.zip_poj

    【标题】"poj-1028-Web-Navigation.zip_poj" 指向的是一个编程竞赛问题,POJ(Programming Online Judge)平台上的第1028题,名为“Web Navigation”。该问题通常涉及到算法设计和实现,可能是为了考察参赛者的编程...

    POJ1258-Agri-Net【Prim】

    【标题】"POJ1258-Agri-Net【Prim】" 是一个编程竞赛题目,来源于北京大学的在线评测系统POJ(Problem Online Judge)。这个题目主要涉及到图论中的一个重要算法——普里姆(Prim)算法。 【描述】"北大POJ1258-...

    POJ2299-Ultra-QuickSort

    【标题】"POJ2299-Ultra-QuickSort"是北京大学在线判题系统POJ上的一道编程题目,其主要涉及的算法是快速排序(Ultra-QuickSort)。快速排序是一种高效的排序算法,由C.A.R. Hoare在1960年提出。它的基本思想是采用...

    POJ2002-Squares

    【标题】"POJ2002-Squares"是一个经典的计算机编程题目,源自北京大学的在线判题系统(POJ,即PKU Online Judge)。这个题目主要涉及到算法设计和实现,尤其是数学和动态规划方面的知识。 【描述】"解题报告+AC代码...

    北大POJ水题-整合包

    【北大POJ水题-整合包】是一个针对北京大学(Peking University)在线判题系统POJ(Peking University Online Judge)中的基础题目所整理的资源集合。这个整合包包含了对这些"水题"的解题报告和已经通过验证...

Global site tag (gtag.js) - Google Analytics