ZOJ 2971 Give Me the Number 题目

ZOJ 2311 Inglish-Number Translator 题目

//两者题目差不多,细节有点点不一样,因为不是一起做的,所以处理方式有一点点不一样——还是前一个方式高端呀。

//ZOJ 2971 的AC代码(用了strstr函数):

  1. #include<stdio.h>
  2. #include<string.h>
  3. char c[][] = {"zero" , "one" , "two" , "three" , "four" , "five" , "six" , "seven" , "eight" , "nine", "ten" ,
  4. "eleven" , "twelve" , "thirteen" , "fourteen" , "fifteen" , "sixteen" , "seventeen" , "eighteen" , "nineteen", "twenty" ,
  5. "thirty" , "forty" , "fifty" , "sixty" , "seventy" , "eighty" , "ninety" , "hundred" , "thousand" , "million" , "and"};
  6. char s[],sss[];
  7. int main()
  8. {
  9. int ne , sum , flag , i,j , acc,len;
  10. int tt;
  11. scanf("%d",&tt);
  12. getchar();
  13. while(tt--)
  14. {
  15. gets(s);
  16. ne = ;
  17. sum = ;
  18. flag = ;
  19. acc = ;
  20. len=strlen(s);
  21. while (flag <len)
  22. {
  23. while (s[flag] == ' ') flag++;
  24. // while (s[flag] == 'and') flag++;
  25. for (i = ; i >= ; i--)
  26. {
  27. if (strstr(&s[flag] , c[i]) == &s[flag])//在s中找c[i]如果找到了,返回位置,没有找到返回-1,即false;&取位置
  28. {
  29. if (i <= ) acc += i;
  30. else if (i <= ) acc += (i - ) * ;
  31. else if (i == ) acc *= ;
  32. else if (i == )
  33. {
  34. sum += acc * ;
  35. acc = ;
  36. }
  37. else if (i == )
  38. {
  39. sum += acc * ;
  40. acc = ;
  41. }
  42. else if (i == ) ne = -;
  43. flag += strlen(c[i]);
  44. break;
  45. }
  46. }
  47. }
  48. printf("%d\n" , (sum + acc));
  49.  
  50. }
  51. return ;
  52. }

字符串转化为数

//ZOJ 2311 的AC代码(这题要注意,防空行,就是一行什么都没输入,那么也什么都不要输出):

  1. //模拟
  2. //英文句子转阿拉伯数字。
  3.  
  4. #include<stdio.h>
  5. #include<string.h>
  6. #include<algorithm>
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11. int len,i,j,k,num,sign,ans;
  12. char str[],word[];
  13. char w[][]={"negative", "zero", "one", "two", "three", "four", "five",
  14. "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen",
  15. "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen",
  16. "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty",
  17. "ninety", "hundred", "thousand", "million"};
  18. while(gets(str))
  19. {
  20. if(strcmp(str,"")==)continue;//防空行
  21. len=strlen(str);
  22. str[len++]=' ';
  23. num=;
  24. j=;
  25. sign=;
  26. ans=;
  27. for(i=;i<len;i++)
  28. {
  29. if(str[i]!=' ')
  30. word[j++]=str[i];
  31. else
  32. {
  33. word[j++]='\0';
  34. for(k=;k<;k++)
  35. {
  36. if(strcmp(w[k],word)==)
  37. {
  38. if(k==)
  39. sign=-;
  40. else if(k>=&&k<=)
  41. num+=k-;
  42. else if(k>=&&k<=)
  43. num+=(k-)*;
  44. else if(k==)
  45. num=num*;
  46. else if(k==)//只要考虑1000
  47. {
  48. ans+=num*;
  49. num=;
  50. }
  51. else if(k==)//和1000000就可以了
  52. {
  53. ans+=num*;
  54. num=;
  55. }
  56. break;
  57. }
  58. }
  59. j=;
  60. }
  61. }
  62. ans+=num;
  63. printf("%d\n",ans*sign);
  64. }
  65. return ;
  66. }

ZOJ 2971 Give Me the Number;ZOJ 2311 Inglish-Number Translator (字符处理,防空行,strstr)的更多相关文章

  1. [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& ...

  2. 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 ...

  3. 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 ...

  4. leetcode 136. Single Number 、 137. Single Number II 、 260. Single Number III(剑指offer40 数组中只出现一次的数字)

    136. Single Number 除了一个数字,其他数字都出现了两遍. 用亦或解决,亦或的特点:1.相同的数结果为0,不同的数结果为1 2.与自己亦或为0,与0亦或为原来的数 class Solu ...

  5. java.sql.SQLException: Io 异常: Invalid number format for port number

    java.sql.SQLException: Io 异常: Invalid number format for port number   jdbc数据库链接配置没有写端口号 ​ 要检查jdbc的配置 ...

  6. hdu 6216 A Cubic number and A Cubic Number【数学题】

    hdu 6216 A Cubic number and A Cubic Number[数学] 题意:判断一个素数是否是两个立方数之差,就是验差分.. 题解:只有相邻两立方数之差才可能,,因为x^3-y ...

  7. 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 ...

  8. Io 异常: Invalid number format for port number

    报错信息: Caused by: java.sql.SQLException: Io 异常: Invalid number format for port number    at oracle.jd ...

  9. a number of 和the number of用法

    a number of 和the number of用法 1.   A number of + 複數名詞 + 複數動詞           =some/或a lot of + 複數名詞 + 複數動詞 ...

随机推荐

  1. ios view的frame和bounds之区别(位置和大小)

    前言: 学习ios开发有一段时间了,项目也做了两个了,今天看视频,突然发现view的frame和bound两个属性,发现bound怎么也想不明白,好像饶你了死胡同里,经过一番尝试和思考,终于弄明白bo ...

  2. 2015年iOS测试现状

    本文由 伯乐在线 - nathanw 翻译,dopcn 校稿.未经许可,禁止转载! 英文出处:www.mokacoding.com.欢迎加入翻译小组. 几周前,我决定将将我在 mokacoding 上 ...

  3. ExtJS MVC学习手记

    开始学习ExtJS的MVC了.这篇文章仅是用来做一个目录,为自己这个阶段的学习内容做个索引. 手记涉及的文章: EXTJS MVC结构(译自ExtJS4.0文档中的<MVC Architectu ...

  4. R语言实战读书笔记1—语言介绍

    第一章 语言介绍 1.1 典型的数据分析步骤 1.2 获取帮助 help.start() help("which") help.search("which") ...

  5. vim时,ctrl+s了一下,程序僵死了

    刚刚在用vim的时候,按了ctrl+s,然后僵死了,ctrl+c.ctrl+d都没有反应. 不知怎么回事,差点就把它kill了,想探探究竟,网上查了一下,原来原来,这是个快捷键. ctrl+s 锁定屏 ...

  6. ABAP文本编辑框操作

    * 1.创建文本框 DATA: g_container TYPE REF TO cl_gui_custom_container, g_editor TYPE REF TO cl_gui_textedi ...

  7. [转]log4net 使用指南

    声明:本文内容主要译自Nauman Leghari的Using log4net,亦加入了个人的一点心得(节3.1.4). 请在这里下载示例代码 1           简介 1.1          ...

  8. [shell基础]——awk命令

    关于awk awk是一个强大的文本分析工具,相对于grep的查找.sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大. 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开 ...

  9. 0-N背包为题(动态规划算法)

    /****************0-N背包问题****************** * 有n个物体装入容量为c的背包,每一个物体有一个体积 * 和一个价值,所装入的物体体积之和不大于背包体积, * ...

  10. linux中的文件类型

    1.使用ls -l命令可以查看文件的类型和权限 [tansheng@localhost etc]$ ls -l ----------. root root 10月 : gshadow -------- ...