HDU-1228 - A + B (很久没做水题了!都快忘了......)
2016-07-30 17:55
302 查看
A + B
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15357 Accepted Submission(s): 9142
Problem Description
读入两个小于100的正整数A和B,计算A+B.
需要注意的是:A和B的每一位数字由对应的英文单词给出.
Input
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.
Output
对每个测试用例输出1行,即A+B的值.
Sample Input
one + two = three four + five six = zero seven + eight nine = zero + zero =
Sample Output
3 90 96
Source
浙大计算机研究生复试上机考试-2005年
Recommend
JGShining | We have carefully selected several similar problems for you: 1234 1229 1236 1232 1230
非常简单的A+B,唯一用到的就是字符串替换了,写法可能不同,但要表达的意思是一样的.
这里学习一下别人的写法,有时候拿到题或者一个要求的时候不知道程序应该怎么写,这你就需要多看看别人的写 法了,
体会一下别人的思路,为什么别人的思路很清晰能想到非常简单的解法,而你却总是抓不到重点,这不仅仅是只做题,
只要为了解决问题就是这样.
实习之余,有时间看看题吧,在感觉很烦的时候,做做题,能收获一点不一样的心情.至于这段时间的总结.....
回头有时间再写......感觉越来越懒......
代码(清晰的思路):
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> char Number[10][6] = { "zero","one","two","three","four","five","six","seven","eight","nine" }; int search(char *str) { int i; for (i = 0; i < 10; i++) { if (strcmp(Number[i], str) == 0) { break; } } return i; } void main() { char count[10]; int a, b; while (1) { a = 0; while (scanf("%s", count) && strcmp(count, "+") != 0) { a = a * 10 + search(count); } b = 0; while (scanf("%s", count) && strcmp(count, "=") != 0) { b = b * 10 + search(count); } if (a == 0 && b == 0) { break; } else { printf("%d\n", a + b); } } }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C 语言简单加减乘除运算
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言二进制思想以及数据的存储
- C语言中计算正弦的相关函数总结