题目描述

为了适应紧张的大学学习生活,小Z发愤图强开始复习巩固英语。

由于小Z对数学比较有好感,他首先复习了数词。小Z花了一整天的时间,终于把关于基数词的知识都搞懂了。于是小Z非常兴奋,决定出一些题目考考已经过了英语四级、人称英语帝的小 G。考法很简单:小Z给出某个整数 x 的英文写法,要求小D用阿拉伯数字写出x。

小Z会保证以下几点:

1、-999,999,999 ≤ x ≤ 999,999,999

2、题目中只会用到以下这些英文单词:

negative, zero, one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen,

fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, thirty, forty, fifty, sixty, seventy,

eighty, ninety, hundred, thousand, million

3、若 x 为负数,题目中第一个单词是 negative,否则任何时候都不会出现 negative 这个词。

4、由于小Z很牛 B,他不知道像 103 这样的数字要写成 one hundred and three 而是直接写成了 one hundred three,就是说小Z的所有题目中都没有写 and 这个词(尽管本应该是要写的),请你谅解。

5、除了第 4 点, 其他还是基本符合英语的语法规则的, 比如 1500 他会写成 one thousand five hundred 而不会写成 fifteen hundred。

小D拿到题目后不屑地说了一句:水题!写个程序么好了……

但是小D要出去玩(此时应该已经在千里之外爽玩了) ,这个任务就交给你了。

输入输出格式

输入格式:

一行,题目描述中所说的 x 的英文写法。

输出格式:

一行, x 的阿拉伯数字写法。

输入输出样例

输入样例#1: 复制

six
输出样例#1: 复制

6
输入样例#2: 复制

negative seven hundred twenty nine
输出样例#2: 复制

-729
输入样例#3: 复制

one million one hundred one
输出样例#3: 复制

1000101
输入样例#4: 复制

eight hundred fourteen thousand twenty two
输出样例#4: 复制

814022

说明

【数据规模】

对于100%的数据,-999,999,999 ≤ x ≤ 999,999,999

【时空限制】

0.1s/16M

思路:模拟。

#include<map>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
map<string,string>ma;
string x;
int tot,maxn;
long long ans;
int num[];
void pre(){
ma["negative"]="-";ma["zero"]="";ma["one"]="";ma["two"]="";ma["three"]="";
ma["four"]="";ma["five"]="";ma["six"]="";ma["seven"]="";ma["eight"]="";
ma["nine"]="";ma["ten"]="";ma["eleven"]="";ma["twelve"]="";ma["thirteen"]="";
ma["fourteen"]="";ma["fifteen"]="";ma["sixteen"]="";ma["seventeen"]="";
ma["eighteen"]="";ma["nineteen"]="";ma["twenty"]="";ma["thirty"]="";
ma["forty"]="";ma["fifty"]="";ma["sixty"]="";ma["seventy"]="";ma["eighty"]="";
ma["ninety"]="";ma["hundred"]="";ma["thousand"]="";ma["million"]="";
}
int main(){
pre();
while(cin>>x){
x=ma[x];
if(x[]=='-'){ cout<<x[];x.clear();continue; }
int le=x.length(),sum=;
for(int j=;j<le;j++){
sum+=x[j]-'';
sum*=;
}
sum/=;
x.clear();
num[++tot]=sum;
}
for(int i=;i<=tot;i++){
if(num[i]<) maxn+=num[i];
else if(num[i]==) maxn*=num[i];
else if(num[i]==){
ans+=maxn*;
maxn=;
}
else if(num[i]==){
ans+=maxn*;
maxn=;
}
}
cout<<ans+maxn;
}

洛谷 P2108 学英语的更多相关文章

  1. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  2. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  3. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  4. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  5. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  6. 洛谷P1371 NOI元丹

    P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交  讨论  题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...

  7. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  8. 洛谷八月月赛Round1凄惨记

    个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...

  9. 洛谷 P1379 八数码难题 Label:判重&&bfs

    特别声明:紫书上抄来的代码,详见P198 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给 ...

随机推荐

  1. ES6学习笔记(十五)Generator函数的异步应用

    1.传统方法 ES6 诞生以前,异步编程的方法,大概有下面四种. 回调函数 事件监听 发布/订阅 Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个全新的阶段. ...

  2. 05001_Linux简介

    1.Linux的概述 (1)Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林纳斯•托瓦兹)起初开 ...

  3. 洛谷 P1302 可见矩形

    P1302 可见矩形 题目描述 给定平面上n个互不相交(指公共面积为零)的正方形,它们的顶点坐标均为整数.设坐标原点为O(0, 0).对于任一正方形R,如果可以找到R的边上2个不同的点A和B,使三角形 ...

  4. AJAX--XMLHttpRequest五步使使用方法

    传统浏览方式和AJAX方式的不同 多数Web应用程序都使用请求/响应模型从server上获得完整的HTML页面.经常是点击一个button,等待server对应,在点击还有一个button.然后在等待 ...

  5. eclipse下Tomcat7.0启动奔溃问题

    好久没用Eclipse了,如今上班这家公司正好用到了,完后用Tomcat启动项目一直报一个错,例如以下图 错误代码例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...

  6. Linux下查看txt文档

    当我们在使用Window操作系统的时候,可能使用最多的文本格式就是txt了,可是当我们将Window平台下的txt文本文档复制到Linux平台下查看时,发现原来的中文所有变成了乱码. 没错, 引起这个 ...

  7. C++刷题——2802: 推断字符串是否为回文

    Description 编敲代码,推断输入的一个字符串是否为回文. 若是则输出"Yes".否则输出"No". 所谓回文是指順读和倒读都是一样的字符串. Inpu ...

  8. Sqlite 命令行导出、导入数据(直接支持CSV)

    打开命令行 导出数据到data.csv D:\project>sqlite3.exe old.db SQLite version 3.21.0 2017-10-24 18:55:49 Enter ...

  9. springboot 统一管理异常信息

    新建ResponseEntityExceptionHandler的继承类:(依然,需要入口类扫描) /** * @author sky * @version 1.0 */ @ControllerAdv ...

  10. Spring MVC 入门

    1.准备开发环境和运行环境: ☆开发工具:eclipse ☆运行环境:tomcat6.0.20 ☆工程:动态web工程(springmvc-chapter2) ☆spring框架下载: spring- ...