HDU-1228-A+B(字符串处理)
2015-07-22 22:05
381 查看
hdu 1228 A+B
需要注意的是:A和B的每一位数字由对应的英文单词给出.
three four + five six =
zero seven + eight nine =
zero + zero =
90
96
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
390
96
思路:关键就是字符串的处理,怎么把每个数给分离出来,用scanf一个一个的读入,用change()函数给转换成具体的数字
[code]#include<cstdio> #include<cstring> char a[10][10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; int change(char s[]){ for(int i = 0; i < 10; i++) if(!strcmp(a[i], s)) return i; } int main() { char str[10], num[10]; while(1){ int a = 0, b = 0; while(scanf("%s", str) && strcmp(str, "+")){ a = a*10+change(str); } while(scanf("%s", str) && strcmp(str, "=")){ b = b*10+change(str); } if(!(a+b)) break; printf("%d\n", a+b); } return 0; }
相关文章推荐
- [Leetcode 117, Hard] Populating Next Right Pointers in Each Node II
- 对Java事务的认识
- IO流读取资源时类加载器的使用
- ubtuntu安装ssh服务
- LS -R实现
- 【BZOJ】1003 Cards
- hibernate学习笔记(七)
- linux 小记
- 序列化
- JAVA环境搭建之JDK配置
- 关于oracle数据库的重新安装
- 我是菜鸟:Java中接口/内部类中容易忽略的问题总结
- SQL复习
- Java通过FTP服务器上传下载文件的解决方案
- 1消息队列(报文队列)实践到内核消息队列的创建
- speex库处理音频编解码in即时通讯开发
- 【转载】OCX和DLL的区别
- base64 encoding
- 来问项目-less文件的组织
- 文章标题