ZOJ 2971 Give Me the Number;ZOJ 2311 Inglish-Number Translator (字符处理,防空行,strstr)
ZOJ 2971 Give Me the Number 题目
ZOJ 2311 Inglish-Number Translator 题目
//两者题目差不多,细节有点点不一样,因为不是一起做的,所以处理方式有一点点不一样——还是前一个方式高端呀。
//ZOJ 2971 的AC代码(用了strstr函数):
- #include<stdio.h>
- #include<string.h>
- char c[][] = {"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" , "and"};
- char s[],sss[];
- int main()
- {
- int ne , sum , flag , i,j , acc,len;
- int tt;
- scanf("%d",&tt);
- getchar();
- while(tt--)
- {
- gets(s);
- ne = ;
- sum = ;
- flag = ;
- acc = ;
- len=strlen(s);
- while (flag <len)
- {
- while (s[flag] == ' ') flag++;
- // while (s[flag] == 'and') flag++;
- for (i = ; i >= ; i--)
- {
- if (strstr(&s[flag] , c[i]) == &s[flag])//在s中找c[i]如果找到了,返回位置,没有找到返回-1,即false;&取位置
- {
- if (i <= ) acc += i;
- else if (i <= ) acc += (i - ) * ;
- else if (i == ) acc *= ;
- else if (i == )
- {
- sum += acc * ;
- acc = ;
- }
- else if (i == )
- {
- sum += acc * ;
- acc = ;
- }
- else if (i == ) ne = -;
- flag += strlen(c[i]);
- break;
- }
- }
- }
- printf("%d\n" , (sum + acc));
- }
- return ;
- }
字符串转化为数
//ZOJ 2311 的AC代码(这题要注意,防空行,就是一行什么都没输入,那么也什么都不要输出):
- //模拟
- //英文句子转阿拉伯数字。
- #include<stdio.h>
- #include<string.h>
- #include<algorithm>
- using namespace std;
- int main()
- {
- int len,i,j,k,num,sign,ans;
- char str[],word[];
- char w[][]={"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"};
- while(gets(str))
- {
- if(strcmp(str,"")==)continue;//防空行
- len=strlen(str);
- str[len++]=' ';
- num=;
- j=;
- sign=;
- ans=;
- for(i=;i<len;i++)
- {
- if(str[i]!=' ')
- word[j++]=str[i];
- else
- {
- word[j++]='\0';
- for(k=;k<;k++)
- {
- if(strcmp(w[k],word)==)
- {
- if(k==)
- sign=-;
- else if(k>=&&k<=)
- num+=k-;
- else if(k>=&&k<=)
- num+=(k-)*;
- else if(k==)
- num=num*;
- else if(k==)//只要考虑1000
- {
- ans+=num*;
- num=;
- }
- else if(k==)//和1000000就可以了
- {
- ans+=num*;
- num=;
- }
- break;
- }
- }
- j=;
- }
- }
- ans+=num;
- printf("%d\n",ans*sign);
- }
- return ;
- }
ZOJ 2971 Give Me the Number;ZOJ 2311 Inglish-Number Translator (字符处理,防空行,strstr)的更多相关文章
- [Javascript] Use Number() to convert to Number if possilbe
Use map() and Number() to convert to number if possilbe or NaN. var str = ["1","1.23& ...
- Ugly Number,Ugly Number II,Super Ugly Number
一.Ugly Number Write a program to check whether a given number is an ugly number. Ugly numbers are po ...
- leetcode 263. Ugly Number 、264. Ugly Number II 、313. Super Ugly Number 、204. Count Primes
263. Ugly Number 注意:1.小于等于0都不属于丑数 2.while循环的判断不是num >= 0, 而是能被2 .3.5整除,即能被整除才去除这些数 class Solution ...
- leetcode 136. Single Number 、 137. Single Number II 、 260. Single Number III(剑指offer40 数组中只出现一次的数字)
136. Single Number 除了一个数字,其他数字都出现了两遍. 用亦或解决,亦或的特点:1.相同的数结果为0,不同的数结果为1 2.与自己亦或为0,与0亦或为原来的数 class Solu ...
- java.sql.SQLException: Io 异常: Invalid number format for port number
java.sql.SQLException: Io 异常: Invalid number format for port number jdbc数据库链接配置没有写端口号 要检查jdbc的配置 ...
- hdu 6216 A Cubic number and A Cubic Number【数学题】
hdu 6216 A Cubic number and A Cubic Number[数学] 题意:判断一个素数是否是两个立方数之差,就是验差分.. 题解:只有相邻两立方数之差才可能,,因为x^3-y ...
- 2017青岛网络赛1011 A Cubic number and A Cubic Number
A Cubic number and A Cubic Number Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/3276 ...
- Io 异常: Invalid number format for port number
报错信息: Caused by: java.sql.SQLException: Io 异常: Invalid number format for port number at oracle.jd ...
- a number of 和the number of用法
a number of 和the number of用法 1. A number of + 複數名詞 + 複數動詞 =some/或a lot of + 複數名詞 + 複數動詞 ...
随机推荐
- ios view的frame和bounds之区别(位置和大小)
前言: 学习ios开发有一段时间了,项目也做了两个了,今天看视频,突然发现view的frame和bound两个属性,发现bound怎么也想不明白,好像饶你了死胡同里,经过一番尝试和思考,终于弄明白bo ...
- 2015年iOS测试现状
本文由 伯乐在线 - nathanw 翻译,dopcn 校稿.未经许可,禁止转载! 英文出处:www.mokacoding.com.欢迎加入翻译小组. 几周前,我决定将将我在 mokacoding 上 ...
- ExtJS MVC学习手记
开始学习ExtJS的MVC了.这篇文章仅是用来做一个目录,为自己这个阶段的学习内容做个索引. 手记涉及的文章: EXTJS MVC结构(译自ExtJS4.0文档中的<MVC Architectu ...
- R语言实战读书笔记1—语言介绍
第一章 语言介绍 1.1 典型的数据分析步骤 1.2 获取帮助 help.start() help("which") help.search("which") ...
- vim时,ctrl+s了一下,程序僵死了
刚刚在用vim的时候,按了ctrl+s,然后僵死了,ctrl+c.ctrl+d都没有反应. 不知怎么回事,差点就把它kill了,想探探究竟,网上查了一下,原来原来,这是个快捷键. ctrl+s 锁定屏 ...
- ABAP文本编辑框操作
* 1.创建文本框 DATA: g_container TYPE REF TO cl_gui_custom_container, g_editor TYPE REF TO cl_gui_textedi ...
- [转]log4net 使用指南
声明:本文内容主要译自Nauman Leghari的Using log4net,亦加入了个人的一点心得(节3.1.4). 请在这里下载示例代码 1 简介 1.1 ...
- [shell基础]——awk命令
关于awk awk是一个强大的文本分析工具,相对于grep的查找.sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大. 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开 ...
- 0-N背包为题(动态规划算法)
/****************0-N背包问题****************** * 有n个物体装入容量为c的背包,每一个物体有一个体积 * 和一个价值,所装入的物体体积之和不大于背包体积, * ...
- linux中的文件类型
1.使用ls -l命令可以查看文件的类型和权限 [tansheng@localhost etc]$ ls -l ----------. root root 10月 : gshadow -------- ...