题目链接:http://poj.org/problem?id=2121

差一点就WA哭了,主要是自己傻逼了。

思路:

遇到hundred,sum*100;

但是遇到thouthend,million,ans+=sum*(... ...),sum=0;

因为到了thouthend,million,后面肯定又是新的数字,跟前面的没关系了,sum=0;

而hundred,后面是可以再加数的,比如22,所以这里只要sum*=100;

注意:

这里经典的一招,杰哥教我的,要重置一下order,只需要order[k]='/0';

而不需要memset了。

#include <stdio.h>
#include <iostream>
#include <string.h> using namespace std; char str[]; int main()
{
while(gets(str))
{
//printf("%s",str);
if(strcmp(str,"")==)
break;
bool flag = false;
int ans=;
int sum=;
char order[]={'\0'};
int k=;
for(int i=;i<strlen(str)+;i++)
{
if(str[i]!=' '&&str[i]!='\0')
order[k++] = str[i];
else{
order[k] = '\0';
k=;
if(!strcmp(order,"negative")) flag = true;
if(!strcmp(order,"zero")) sum+=;
if(!strcmp(order,"one")) sum+=;
if(!strcmp(order,"two")) sum+=;
if(!strcmp(order,"three")) sum+=;
if(!strcmp(order,"four")) sum+=;
if(!strcmp(order,"five")) sum+=;
if(!strcmp(order,"six")) sum+=;
if(!strcmp(order,"seven")) sum+=;
if(!strcmp(order,"eight")) sum+=;
if(!strcmp(order,"nine")) sum+=;
if(!strcmp(order,"ten")) sum+=;
if(!strcmp(order,"eleven")) sum+=;
if(!strcmp(order,"twelve")) sum+=;
if(!strcmp(order,"thirteen")) sum+=;
if(!strcmp(order,"fourteen")) sum+=;
if(!strcmp(order,"fifteen")) sum+=;
if(!strcmp(order,"sixteen")) sum+=;
if(!strcmp(order,"seventeen")) sum+=;
if(!strcmp(order,"eighteen")) sum+=;
if(!strcmp(order,"nineteen")) sum+=;
if(!strcmp(order,"twenty")) sum+=;
if(!strcmp(order,"thirty")) sum+=;
if(!strcmp(order,"forty")) sum+=;
if(!strcmp(order,"fifty")) sum+=;
if(!strcmp(order,"sixty")) sum+=;
if(!strcmp(order,"seventy")) sum+=;
if(!strcmp(order,"eighty")) sum+=;
if(!strcmp(order,"ninety")) sum+=;
if(!strcmp(order,"hundred"))
{
sum=sum*;
}
if(!strcmp(order,"thousand"))
{
ans = ans+sum * ;
sum = ;
}
if(!strcmp(order,"million"))
{
ans =ans+sum *;
sum = ;
}
}
} if(flag)
printf("-%d\n",ans+sum);
else printf("%d\n",ans+sum);
}
return ;
}

最新文章

  1. docker学习(4) 一些常用操作
  2. c# 服务端
  3. C++开发必看 四种强制类型转换的总结
  4. 一步一步学Python(2) 连接多台主机执行脚本
  5. Vijos 1006 晴天小猪历险记之Hill 单源单汇最短路
  6. 轻松学JVM(一)&mdash;&mdash;基本原理
  7. Html事件冒泡
  8. HDU4858 项目管理 其他
  9. 练习题|网络编程-socket开发
  10. .Net学习资料
  11. 人的一生为什么要努力 &amp;1
  12. javascript数据基本定义以及对象{}和数组[]的含义和使用
  13. C语言的内存对齐
  14. android发送短信样例
  15. UIView总结
  16. 将vi or vim中的内容复制到terminal中
  17. JavaSE 手写 Web 服务器(二)
  18. bzoj 3524 可持久化线段树
  19. 线程同步工具 Semaphore类使用案例
  20. Java 编程

热门文章

  1. Linux7.3 glib-2.49安装记录
  2. 网页console console.log 用法 Chrome F12
  3. 转 RMAN-20005: target database name is ambiguous
  4. Python 15 I/O编程
  5. Java 实践
  6. 关于火狐不响应event.keyCode解决方法
  7. [转]关于Jquery的DataTables里TableTools的应用
  8. 手机web前端调试页面的几种方式
  9. linux 防止ssh暴力破解密码
  10. 使用Nginx、Keepalived构建文艺负载均衡