• Problem A: A + B


    Problem A: A + B
    Time Limit: 1 Sec Memory Limit: 128 MB
    Submit: 17 Solved: 10
    [Submit][Status][Web Board] [Edit] [TestData]
    Description
    读入两个小于10000的正整数A和B,计算A+B.
    需要注意的是:A和B的每一位数字由对应的英文单词给出.

    Input
    测试输入包含若干测试用例,每个测试用例占一行,格式为”A + B =”,相邻两字符串有一个空格间隔.当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<stdio.h>
    #include<string.h>
    #include<string>
    using namespace std;
    int main()
    {
        string a[10000];//分别存放‘+’号前英文
        char a1[10000];//存放英文对应的数字字符
        string b[10000];//存放加号后,等号前的英文
        char b1[10000];//存放英文对应的数字字符
        int k,shu1,shu2;
        int g;
        while(1)
        {   
            memset(a1,'',sizeof(a1));//初始化
                memset(b1,'',sizeof(b1));//初始化
            int i=0;
            int j=0;
            while(cin>>a[i])
        {
            if(a[i][0]=='+')
            {
                i--;
                break;      //存放加号前的英文词
            }
            i++;
        }
        while(cin>>b[j])
        {
            if(b[j][0]=='=')
            {
                j--;               //存放加号后,等于号前的英文词
                break;
            }
            j++;
        }
        if(a[0]=="zero"&&i==0||b[0]=="zero"&&j==0)
        {
            break;                          //如果是zero + zero =的话,直接终止程序
        } 
        g=0;
        for(k=0;k<=i;k++)
        {
           if(a[k]=="zero")
               a1[g++]='0';
           if(a[k]=="one")
               a1[g++]='1';
           if(a[k]=="two")
               a1[g++]='2';
            if(a[k]=="three")
               a1[g++]='3';
             if(a[k]=="four")
               a1[g++]='4';
             if(a[k]=="five")
               a1[g++]='5';
            if(a[k]=="six")
               a1[g++]='6';
             if(a[k]=="seven")
               a1[g++]='7';
            if(a[k]=="eight")
                  a1[g++]='8';
            if(a[k]=="nine")
               a1[g++]='9';
        }
        sscanf(a1,"%d",&shu1);        //将存放在a1数组中的字符变成整型,存放在shu1中
        g=0;                   //  g变成0
        for(k=0;k<=j;k++)
        {
           if(b[k]=="zero")
               b1[g++]='0';
           if(b[k]=="one")
               b1[g++]='1';
           if(b[k]=="two")
               b1[g++]='2';
            if(b[k]=="three")
               b1[g++]='3';
             if(b[k]=="four")
              b1[g++]='4';
             if(b[k]=="five")
               b1[g++]='5';
            if(b[k]=="six")
               b1[g++]='6';
             if(b[k]=="seven")
               b1[g++]='7';
            if(b[k]=="eight")
                  b1[g++]='8';
            if(b[k]=="nine")
               b1[g++]='9';
        }
            sscanf(b1,"%d",&shu2);      //将存放在b1数组中的字符变成整型,存放在shu2中
        cout<<shu1+shu2<<endl;          //求和
        }
        return 0;
    }
  • 相关阅读:
    Hibernate之onetoone单向外键关联Annotation
    Server2008IIS7设置引用http://www.cnblogs.com/goldnet/archive/2008/07/11/1240685.html
    wcf exceptionaction
    性能测试中考虑时间(Thinking Time)的计算方法 http://developer.51cto.com/art/200807/87478.htm
    字节流的比较
    MemorySteam读取的问题Seek方法
    C# 参考之方法参数关键字:params、ref及out 引用http://www.cnblogs.com/hunts/archive/2007/01/13/619620.html
    Equal使用的注意点
    assembly load and unload
    CreateInstance数组传递
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4236892.html
Copyright © 2020-2023  润新知