zoukankan      html  css  js  c++  java
  • A+ B

    题目描述

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

    输入描述:

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

    输出描述:

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

    示例1

    输入

    one + two =
    three four + five six =
    zero seven + eight nine =
    zero + zero =
    

    分析

    1. 使用map,用于查找单词相对应的数字
      2.<string>类的substr的用法
    int i = s.find(c)// 返回值为字符串中第一个出现字符c的位置,如果不存在则返回```npos```(结尾)
    string s1 = s.substr(index);// 返回值为从s[index] 到 结尾的字符串
    string s1 = s.substr(index, length); // 返回值为从index开始,长度为length的字符串
    
    #include <iostream>
    #include <string>
    #include <map>
    
    using namespace std;
    
    int main(){
        map<string, int> mp;
        mp["zero"] = 0;
        mp["one"] = 1;
        mp["two"] = 2;
        mp["three"] = 3;
        mp["four"] = 4;
        mp["five"] = 5;
        mp["six"] = 6;
        mp["seven"] = 7;
        mp["eight"] = 8;
        mp["nine"] = 9;
        string s;
        while(getline(cin, s)) {
            int x, y;
            int plus = s.find('+');
            int equal = s.find('=');
            
            string s1 = s.substr(0, plus - 1);
            string s2 = s.substr(plus + 2, equal - plus - 3);
    
            if(s1.find(' ') == string::npos)
                x = mp[s1];
            else{
                int pos = s1.find(' ');
                string shiwei = s1.substr(0, pos);
                string gewei = s1.substr(pos + 1);
                x = mp[shiwei] * 10 + mp[gewei];
            }
    
    
            if(s2.find(' ') == string::npos)
                y = mp[s2];
            else{
                int pos = s2.find(' ');
                string shiwei = s2.substr(0, pos);
                string gewei = s2.substr(pos + 1);
                y = mp[shiwei] * 10 + mp[gewei];
            }
    
            if(x + y == 0) break;
            else cout << x + y << endl;
        }
        return 0;
    }
    
  • 相关阅读:
    [SCOI2016]幸运数字
    [CQOI2013]新Nim游戏
    POJ-2485 Highways---最小生成树中最大边
    最小生成树之kruskal算法
    POJ-1789 Truck History---最小生成树Prim算法
    最小生成树之prim算法
    POJ-1182 食物链---并查集(附模板)
    POJ-2993 Emag eht htiw Em Pleh---棋盘模拟
    POJ-2996 Help Me with the Game---模拟棋子
    POJ-1573 Robot Motion模拟
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10262697.html
Copyright © 2011-2022 走看看