题目 1010 A + B 九度Online Judge

题目描述:

读入两个小于100的正整数A和B,计算A+B.需要注意的是:A和B的每一位数字由对应的英文单词给出.

输入:

测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.

输出:

对每个测试用例输出1行,即A+B的值.

样例输入: one + two =three four + five six =zero seven + eight nine =zero + zero =样例输出: 39096#include <iostream>#include <string>using namespace std; int Letter(string L){if (L=="zero"){return 0;}if (L=="one"){return 1;}if (L=="three"){return 3;}if (L=="two"){return 2;}if (L=="four"){return 4;}if (L=="five"){return 5;}if (L=="six"){return 6;}if (L=="seven"){return 7;}if (L=="eight"){return 8;}if (L=="nine"){return 9;}elsereturn -1;} int main(){int i=0,j=0;int num1=0,num2=0;string str[100];while (cin>>str[i]){num1=0;num2=0;if (str[i]!="="){i++;//本题的关键点之一就是将单词分别存在数组中。continue;}while (str[j]!="+"){num1=num1*10+Letter(str[j]); //这里是一个关键方法。刚开始做的时候就想着怎么去把十位和各位的数字分开,后来参考ac大牛写的代码以后才知道。除了这个方法以外,还可以用空格来区分数字。j++;// break;}while (++j<i){num2=num2*10+Letter(str[j]);//j++;//break;}i=0;j=0;if(num1 == 0 && num2 == 0)//同时为零时推出break;cout<<num1+num2<<endl;}return 1;}/**************************************************************Problem: 1010User: CarvinLanguage: C++Result: AcceptedTime:10 msMemory:1520 kb****************************************************************/

,当爱丽思丢失了通往仙境的钥匙,

题目 1010 A + B 九度Online Judge

相关文章:

你感兴趣的文章:

标签云: