1. 程式人生 > >計算機考研複試 A+B

計算機考研複試 A+B

題目描述

讀入兩個小於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) return
i; } 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; }