题目链接: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. Docker & ASP.NET Core 教程

    第一篇:把代码连接到容器 第二篇:定制Docker镜像 第三篇:发布镜像 第四篇:容器间的连接 第五篇: Docker & ASP.NET Core (5):Docker Compose AS ...

  2. SQL SERVER linked server Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

    昨天创建了一个View, 这个view是一系列的表达式(CTE)组成,封装了好多的业务逻辑,简化下语句如下 ;with CTE AS( ...) SELECT a.company_id ,b.comp ...

  3. java多线程(四)

    一个例子: Account.java 客户实体类 package com.asiainfo.test.thread8; /** * 账户类 * @author luke * */ public cla ...

  4. Linux 文件锁flock 实现两个进程相互监听存活状态

    表头文件  #include<sys/file.h> 定义函数  int flock(int fd,int operation); 函数说明  flock()会依参数operation所指 ...

  5. 用LaTeX画树形结构

    用LaTeX画树形结构,比如:文件目录树形图,程序中函数调用关系图等. 找到的一个不错的资源: http://www.texample.net/tikz/examples/feature/trees/ ...

  6. inventor安装失败怎样卸载安装inventor 2016?

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  7. Unity Collab

    window-services下面打开面板,这里有开关(或者你也可以进入后台项目管理页面删除项目). 最大的圈是项目名称. 然后就打开了下面页面,关上就可以了.

  8. [转]jquery插件创建 jquery.fn.extend与jquery.extend

    本文转自:http://www.cnblogs.com/wyjgreat/archive/2011/07/19/2110754.html jQuery为开发插件提拱了两个方法,分别是: JavaScr ...

  9. Cinder Columns

    http://www.screencast.com/users/xiangxinyong/folders/Smaug http://www.screencast.com/t/SLqCyOwtBRl

  10. 【密码学】RSA密钥长度、明文长度和密文长度

    本文介绍RSA加解密中必须考虑到的密钥长度.明文长度和密文长度问题,对第一次接触RSA的开发人员来说,RSA算是比较复杂的算法,天缘以后还会补充几篇RSA基础知识专题文章,用最简单最通俗的语言描述RS ...