题目1010:A + B

来源:互联网 发布:资生堂淘宝有旗舰店吗 编辑:程序博客网 时间:2024/05/16 07:25
题目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 =
样例输出:
39096
来源:

2005年浙江大学计算机及软件工程研究生机试真题

#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;}


原创粉丝点击