题解报告:hdu 1228 A+B

Posted 霜雪千年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解报告:hdu 1228 A+B相关的知识,希望对你有一定的参考价值。

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1228

题解思路:这道题本来想用gets函数,循环读进来的字符串,把每一个单词存到二维数组里面,再与已存在的二维数组进行比较。但看了别人的题解后才发现忘了scanf有这个功能即遇到空格、换行、回车、水平制表符、换页符、垂直制表符就会停止读取(这里用到的是空格的功能),不仅效率高,而且思路清晰,代码简洁。

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 char t[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};//先用二维数组保存对应的数字
 4 int fd(char str[])//查找字符串
 5 {
 6     int i;
 7     for(i=0;i<10;i++)
 8         if(!strcmp(t[i],str))break;
 9     return i;//返回该字符串对应的数字
10 }
11 int main()
12 {
13 
14     char c[10];
15     int a,b;
16     while(1){
17         a=b=0;
18         while(scanf("%s",c)&&strcmp(c,"+"))a=a*10+fd(c);//遇到‘+‘就会结束当前循环
19         while(scanf("%s",c)&&strcmp(c,"="))b=b*10+fd(c);//遇到‘=‘就会结束当前循环
20         if(a==0&&b==0)break;//题目要求当A、B都为0时停止输入
21         else cout<<(a+b)<<endl;//直接计算输出结果
22     }
23     return 0;
24 }

 

以上是关于题解报告:hdu 1228 A+B的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1228A + B

hdu 1228

题解报告:hdu 2588 GCD

题解报告:hdu 2057 A + B Again

题解报告:hdu 1002 A + B Problem II(大数加法)

题解报告:hdu 2094 产生冠军