hdu 1228 A+B
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
思路:關鍵就是字元串的處理,怎麼把每個數給分離出來,用scanf一個一個的讀入,用change()函數給轉換成具體的數字
#include<cstdio>
#include<cstring>
char a[][] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int change(char s[]){
for(int i = ; i < ; i++)
if(!strcmp(a[i], s))
return i;
}
int main()
{
char str[], num[];
while(){
int a = , b = ;
while(scanf("%s", str) && strcmp(str, "+")){
a = a*+change(str);
}
while(scanf("%s", str) && strcmp(str, "=")){
b = b*+change(str);
}
if(!(a+b)) break;
printf("%d\n", a+b);
}
return ;
}