計算機考研複試 A+B
阿新 • • 發佈:2018-11-21
題目描述
讀入兩個小於100的正整數A和B,計算A+B. 需要注意的是:A和B的每一位數字由對應的英文單詞給出.輸入描述:
測試輸入包含若干測試用例,每個測試用例佔一行,格式為"A + B =",相鄰兩字串有一個空格間隔.當A和B同時為0時輸入結束,相應的結果不要輸出.
輸出描述:
對每個測試用例輸出1行,即A+B的值.示例1
輸入
one + two = three four + five six = zero seven + eight nine = zero + zero =
輸出
3 90 96
//計算機考研複試 A+B /* 程式設計思想: 1.關鍵就是字串的處理,怎麼把每個數給分離出來,用cin一個一個的讀入,用change()函式給轉換成具體的數字. 2.宣告char a[10][10],存放單詞,用於比較。 3.注意點: strcmp函式,比較兩個字串 設這兩個字串為str1,str2, 若str1==str2,則返回零; 若str1<str2,則返回負數; 若str1>str2,則返回正數。*/ //程式實現: #include<iostream> #include<string> using namespace std; char a[10][10] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; int change(string s) { //將單詞轉換成對應數字 for (int i = 0; i < 10; i++) { if (a[i] == s) returni; } return 0; } int main() { string str; while (1) { int a = 0, b = 0; while (cin >> str && str != "+") { //輸入單詞,且不為 + a = a * 10 + change(str); } while (cin >> str && str != "=") { //輸入單詞,且不為 = b = b * 10 + change(str); } if (a == 0 && b == 0) //當A和B同時為0時輸入結束,相應的結果不要輸出. break; else cout << a + b << endl; } return 0; }