码迷,mamicode.com
首页 > 其他好文 > 详细

题解报告:hdu 1228 A+B

时间:2018-02-25 11:21:58      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:垂直   gpo   gets   blog   直接   mes   bre   one   报告   

题目链接: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

标签:垂直   gpo   gets   blog   直接   mes   bre   one   报告   

原文地址:https://www.cnblogs.com/acgoto/p/8468576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!