A + B
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Description
读入两个小于100的正整数A和B,计算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 水题 别的不说了~ AC代码如下:#include<stdio.h> #include<string.h> #include<stdlib.h> char list[10][10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; int change(char *p) { if(strcmp(p, list[0]) == 0) return 0; else if(strcmp(p, list[1]) == 0) return 1; else if(strcmp(p, list[2]) == 0) return 2; else if(strcmp(p, list[3]) == 0) return 3; else if(strcmp(p, list[4]) == 0) return 4; else if(strcmp(p, list[5]) == 0) return 5; else if(strcmp(p, list[6]) == 0) return 6; else if(strcmp(p, list[7]) == 0) return 7; else if(strcmp(p, list[8]) == 0) return 8; else if(strcmp(p, list[9]) == 0) return 9; } int main() { char str[100]; int t1 = 0; int t2 = 0; int flag = 0; while(1) { scanf("%s", &str); if(str[0] != '=') { if(str[0] == '+') flag = 1; if(str[0] != '+' && flag == 0) { t1 = t1 * 10 + change(str); } if(str[0] != '+' && flag == 1) { t2 = t2 * 10 + change(str); } } else { if(t1 == 0 && t2 == 0) break; else { printf("%d\n", t1 + t2); t1 = t2 = 0; flag = 0; } } } return 0; }