<!--<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" 是北京大学在线编程平台POJ上的一道算法题目。这道题目主要考察的是数列的理解和计算能力,以及编程解决问题的技巧。 【描述】"北大POJ1019-Number Sequence 解题报告+AC代码...
POJ水题集-----50道左右-----增加自信啊..
【标题】"POJ3211--Washing Clothes" 是一个编程竞赛题目,来源于著名的在线编程平台POJ(Programming Online Judge)。这类题目通常要求参赛者编写程序来解决特定问题,以此锻炼和测试他们的编程技能和算法理解能力...
标题中的“poj1038--Bugs.rar”是一个关于解决编程竞赛问题的压缩文件,其中包含了对“Bugs”问题的解答。POJ(Problemset Online Judge)是一个在线编程竞赛平台,它提供了一系列的问题供参赛者解决,旨在锻炼和...
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优先队列】”指的是一个在线编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。该题目要求参赛者使用C++编程语言解决特定的问题,并且在解决方案中...
【标题】"POJ1038--Bugs Integrated" 是一个编程竞赛题目,来源于著名的在线编程平台POJ(Programming Online Judge)。这类题目通常要求参赛者编写程序来解决特定问题,以此锻炼和测试他们的算法设计和编程能力。在...
poj 1690 Your-Term-Project.md
poj 1240 Pre-Post-erous!.md
标题“POJ1390--blocks.rar”指的是一个压缩包文件,用于提交给编程竞赛平台POJ(Programming Online Judge)的解决方案。POJ是一个在线的编程竞赛平台,程序员可以在这里提交自己的源代码来解决特定的算法问题。在...
【标题】"POJ3036--Honeycomb Walk" 是一个编程竞赛中的问题,源自著名的在线编程平台POJ(Problem Set)。该题目要求参赛者解决一个与蜂巢行走相关的数学问题,涉及到动态规划和组合优化的概念。 【描述】在...
标题中的“POJ3259--Wormholes(bellman)”是指一个编程竞赛问题,源自POJ(Programming Online Judge)平台。这个问题涉及到利用贝尔曼-福特算法(Bellman-Ford Algorithm)解决“虫洞”(Wormholes)的问题。在...
### POJ解题报告--1005 #### 题目概述 本题要求编写一个程序,模拟根据地块的半圆面积计算该地块开始侵蚀的年份。具体来说,对于每个地块,输入两个坐标值(x 和 y),分别表示地块在平面直角坐标系中的位置。然后...
poj 2827 Auto-Calculation Machine.md
标题“POJ3414-Pots”是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这个题目主要考察的是算法设计和实现能力,通常涉及计算机科学中的数据结构和算法知识。 解题报告是参赛者在...
【标题】"poj-1028-Web-Navigation.zip_poj" 指向的是一个编程竞赛问题,POJ(Programming Online Judge)平台上的第1028题,名为“Web Navigation”。该问题通常涉及到算法设计和实现,可能是为了考察参赛者的编程...
【标题】"POJ1258-Agri-Net【Prim】" 是一个编程竞赛题目,来源于北京大学的在线评测系统POJ(Problem Online Judge)。这个题目主要涉及到图论中的一个重要算法——普里姆(Prim)算法。 【描述】"北大POJ1258-...
【标题】"POJ2299-Ultra-QuickSort"是北京大学在线判题系统POJ上的一道编程题目,其主要涉及的算法是快速排序(Ultra-QuickSort)。快速排序是一种高效的排序算法,由C.A.R. Hoare在1960年提出。它的基本思想是采用...
【标题】"POJ2002-Squares"是一个经典的计算机编程题目,源自北京大学的在线判题系统(POJ,即PKU Online Judge)。这个题目主要涉及到算法设计和实现,尤其是数学和动态规划方面的知识。 【描述】"解题报告+AC代码...
【北大POJ水题-整合包】是一个针对北京大学(Peking University)在线判题系统POJ(Peking University Online Judge)中的基础题目所整理的资源集合。这个整合包包含了对这些"水题"的解题报告和已经通过验证...