题目链接: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 ;
}

字符串处理,Poj(2121)的更多相关文章

  1. POJ 2121

    http://poj.org/problem?id=2121 一道字符串的转换的题目. 题意:就是把那个英文数字翻译成中文. 思路:首先打表,然后把每一个单独的单词分离出来,在组合相加相乘. #inc ...

  2. 字符串hash - POJ 3461 Oulipo

    Oulipo Problem's Link ---------------------------------------------------------------------------- M ...

  3. 字符串KMP || POJ 2185 Milking Grid

    求一个最小矩阵,经过复制能够覆盖原矩阵(覆盖,不是填充,复制之后可以有多的) *解法:横着竖着kmp,求最大公倍数的做法是不对的,见http://blog.sina.com.cn/s/blog_69c ...

  4. 字符串截取模板 && POJ 3450、3080 ( 暴力枚举子串 && KMP匹配 )

    //截取字符串 ch 的 st~en 这一段子串返回子串的首地址 //注意用完需要根据需要最后free()掉 char* substring(char* ch,int st,int en) { ; c ...

  5. poj 题目分类(1)

    poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...

  6. POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)

    本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...

  7. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  8. 转载:poj题目分类(侵删)

    转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码)  ...

  9. 字符串专题:map POJ 1002

    第一次用到是在‘校内赛总结’扫地那道题里面,大同小异 map<string,int>str 可以专用做做字符串的匹配之类的处理 string donser; str [donser]++ ...

随机推荐

  1. Alibaba Java Coding Guidelines 安装(eclipse)并简单使用

    源码地址:https://github.com/alibaba/p3c 1.安装 第1步.help >> Instakll New Software... 第2步.在Work with中输 ...

  2. /var 目录下文件系统

    /var    :日志文件/var/log:各种系统日志存放地*/var/log/message :系统信息默认日志文件 (非常重要)按周自动轮循/var/log/secure  :记录登入系统信息文 ...

  3. python3与python2的区别 记录一波

    1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...

  4. 效率工具(fswatch,rsync)

    mac 安装 brew: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/in ...

  5. leetcode 175 Combine Two Tables join用法

    https://leetcode.com/problemset/database/ ACM退役,刚好要学sql,一定要刷题才行,leetcode吧. 这一题,说了两个表,一个左一个右吧,左边的pers ...

  6. nodejs --- crypto实现加密(转)

    crypto实现加密 本文转自:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0 ...

  7. eureka 源码

    本文为eureka学习笔记,错误之处请指正. ----------------------------------------------------------- 1.服务生产者是怎么注册到配置中心 ...

  8. 二叉查找树的C语言实现(二)

    接着上次的话题.这次我们要讨论,二叉查找树的中序遍历和后序遍历(递归和非递归),另外还有先序遍历(非递归) 1.中序遍历(递归) static void __in_order(struct bnode ...

  9. 当post 的字段很多,post的字段并不完全修改(有的值是前端input的值,有的任保留原来原来数据库的值),

    有一种解决方法(ps:from ljq):  把数据库的值先全部遍历出来,然后再对遍历出来值的$key进行一个判断, example: foreach ($results[0] as $key =&g ...

  10. WEB服务器、网站、域名、IP地址、DNS服务器之间的关系

    域名首先指向你的服务器,这个过程叫解析.  服务器分成好多小块,每小块叫一个空间或者一个虚拟主机.  所以当你输入你的域名以后,服务器收到你域名的访问信息,但不知道要打开这么多个小块中的那一个.所以要 ...