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

計算機考研復試 A+B

data- change pre 一個 間隔 one border span ont

題目描述

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

計算機考研復試 A+B