题目1010:A + B
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:9056
解决:4687
-
题目描述:
-
读入两个小于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 =
-
样例输出:
-
3 90 96
-
来源:
#include<stdio.h>
#include<iostream>
#include<stack>
#include<string.h>
#include <queue>
#include <cmath>
#include <vector>
#include <algorithm>
#include <map>
#include <set>
#include <string>
using namespace std;
typedef long long LL;
int Prime[100000] = {0};
int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31};
char strNum[10];
const char *equ = "=";
const char *add = "+";
char *number[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int getNum(const char *str)
{
for(int i = 0; i < 10; i++){
if(strcmp(str, number[i]) == 0) return i;// 使用C语言字符串的比较函数 如果相等 函数返回的是0
}
return -1;
}
int main() {
//freopen("in.txt", "r", stdin);
//freopen("out.txt","w",stdout);
while(1){
int a = 0, b = 0;
while(scanf("%s", strNum) != EOF && strcmp(strNum, add) != 0){
a = a * 10 + getNum(strNum);
}
while(scanf("%s", strNum) != EOF && strcmp(strNum, equ) != 0 ){
b = b * 10 + getNum(strNum);
}
if(a == 0 && b == 0){
break;
}
cout << a + b << endl;
}
return 0;
}