字符串处理,Poj(2121)
题目链接: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)的更多相关文章
- POJ 2121
http://poj.org/problem?id=2121 一道字符串的转换的题目. 题意:就是把那个英文数字翻译成中文. 思路:首先打表,然后把每一个单独的单词分离出来,在组合相加相乘. #inc ...
- 字符串hash - POJ 3461 Oulipo
Oulipo Problem's Link ---------------------------------------------------------------------------- M ...
- 字符串KMP || POJ 2185 Milking Grid
求一个最小矩阵,经过复制能够覆盖原矩阵(覆盖,不是填充,复制之后可以有多的) *解法:横着竖着kmp,求最大公倍数的做法是不对的,见http://blog.sina.com.cn/s/blog_69c ...
- 字符串截取模板 && POJ 3450、3080 ( 暴力枚举子串 && KMP匹配 )
//截取字符串 ch 的 st~en 这一段子串返回子串的首地址 //注意用完需要根据需要最后free()掉 char* substring(char* ch,int st,int en) { ; c ...
- poj 题目分类(1)
poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...
- POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)
本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- 转载:poj题目分类(侵删)
转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) ...
- 字符串专题:map POJ 1002
第一次用到是在‘校内赛总结’扫地那道题里面,大同小异 map<string,int>str 可以专用做做字符串的匹配之类的处理 string donser; str [donser]++ ...
随机推荐
- HikariPool连接池的使用
HikariDataSource datasource= new HikariDataSource( xxxx ); Connection cn = datasource.getConnection( ...
- etcd介绍
etcd是一个开源的.分布式的键值对数据存储系统,提供共享配置.服务的注册和发现. etcd与zookeeper相比算是轻量级系统.etcd的raft比zookeeper的paxos简单. 我们用et ...
- JS时间控件 moment.js用法
参考http://momentjs.cn/ 下载 moment.js moment.min.js 12.4k moment+多语言支持.js moment+多语言支持.min.js 45.4k 安装 ...
- 工作中常用到的sql命令!!!
一.mysql数据库日常操作. 1.启动mysql:/etc/init.d/mysql start (前面为mysql的安装路径) 2.重启mysql: /etc/init.d/my ...
- 安装Chrome插件Markdown Preview Plus
1.在谷歌应用商店,安装Chrome插件Markdown Preview Plus 2.设置Markdown Preview Plus (1)鼠标左键该拓展插件 (2)鼠标右键该插件 3.将mar ...
- 01-消息中间件概述和ActiveMq入门
1.mq解决的问题 系统异步处理 应用解耦 流量削峰 日志处理 消息通信 2.消息中间件的2中模型 2.1 Point-to-Point(P2P) / 点对点 / 类比:送快递 特点: + 一个消费生 ...
- linux进程间的通信之 共享内存
一.共享内存介绍 共享内存是三个IPC(Inter-Process Communication)机制中的一个. 它允许两个不相关的进程访问同一个逻辑内存. 共享内存是在两个正在进行的进程之间传递数据的 ...
- windows 7下安装tomcat6 web服务器
因为项目中要使用Mondrian提供ROLAP应用,而Mondrian是运行在tomcat上的. 一. 软件获取: http://tomcat.apache.org/ 二. 安装步骤: 运行可执行程序 ...
- ubuntu使用ppa源安装最新版本的git
国内也有ubuntu镜像源.但是里面的git都是1.9版本.最新的已经是2.3了 1 首先使用将ppa源加入Ubuntu,交大家 sudo add-apt-repository ppa:pdoes/p ...
- 二叉查找树的C语言实现(二)
接着上次的话题.这次我们要讨论,二叉查找树的中序遍历和后序遍历(递归和非递归),另外还有先序遍历(非递归) 1.中序遍历(递归) static void __in_order(struct bnode ...