P-A+B(第2四半期水)
4059 ワード
Description
100未満の2つの正の整数AとBを読み込む、A+Bを計算する.
なお、AとBの各数字は、対応する英語の単語によって与えられる.
Input
テスト入力はいくつかのテスト用例を含み、各テスト用例は1行を占め、フォーマットは「A+B=」であり、隣接する2つの文字列にはスペース間隔がある.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
文字列の柔軟性を維持
100未満の2つの正の整数AとBを読み込む、A+Bを計算する.
なお、AとBの各数字は、対応する英語の単語によって与えられる.
Input
テスト入力はいくつかのテスト用例を含み、各テスト用例は1行を占め、フォーマットは「A+B=」であり、隣接する2つの文字列にはスペース間隔がある.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
#include <iostream>
#include <string>
using namespace std;
int g(string str)
{
if(str=="zero")return 0;
if(str=="one")return 1;
if(str=="two")return 2;
if(str=="three")return 3;
if(str=="four")return 4;
if(str=="five")return 5;
if(str=="six")return 6;
if(str=="seven")return 7;
if(str=="eight")return 8;
if(str=="nine")return 9;
}
int main()
{
string a[15];
while(cin>>a[0]>>a[1]>>a[2]){
int i,k1,k2;
for(i=3;;i++){
cin>>a[i];
if(a[i]=="=")break;
}
if(a[0]=="zero"&&a[1]=="+"&&a[2]=="zero"&&a[3]=="=")break;
if(a[1]=="+"){
k1=g(a[0]);
if(a[3]=="=")k2=g(a[2]);
else k2=g(a[2])*10+g(a[3]);
}
else{
k1=10*g(a[0])+g(a[1]);
if(a[4]=="=")k2=g(a[3]);
else k2=g(a[3])*10+g(a[4]);
}
cout<<k1+k2<<endl;
}
//system("pause");
return 0;
}
文字列の柔軟性を維持