英語A + B

A + B

タイトル説明

私は:. AとB各桁は、対応する英語の単語によって与えられることをA + B注意を計算するために2つの正の整数以下AとB 100より読み出します。

説明を入力します。

、行あたり各テストケースをテストケースを複数備えテスト入力は、の形式「A + Bは=」、間隔隣接する列の間に空間が存在する。入力端が0であるA及びBは、対応する結果が出力されない場合。

出力説明:

各テストケースの出力ライン、すなわち、A + Bの値

例1

エントリー

1 + 2 = 
3〜4 + 5〜6 = 
ゼロ7 + 8 9 = 
ゼロ+ゼロ=

輸出

3 
90 
96

問題解決のアイデア:値を格納するマップで動作するように簡単では4例を議論することができます。

/ * 
 * @Qusetion:https://dwz.lc/iiYuaA2eO 
 * @Author:一届书生
 * @Date:2020年3月19日10時13分14秒
 * @LastEditTime:2020年3月21日夜11時54分26秒
 * / 
書式#include <iostreamの> 
の#include <文字列> 
の#include <マップ> 
std名前空間を使用しました。
チャーS [50]。
INTメイン()
{ 
    マップ<文字列、整数> MP {{ "1"、1}、{ "2"、2}、{ "3"、3}、{ "4"、4}、
        { "5"、 5}、{ "6"、6}、{ "7"、7}、{ "8"、8}、{ "9"、9}、{ "ゼロ"、0}}。
    ((S取得))、一方
    { 
        文字列T [10]。
        以下のための(私は0 = INT、J = 0; I <50;
                T [J] + = S [i]は、
        } 

        もし(T [0] == T [2] && T [2] == "ゼロ")
            0を返します。

        // * + * 
        IF(T [1] == "+" && T [3] [0] == '=')
            COUT << MP [T [0] + MP [T [2] << endl; 
        // * + ** 
        IF(T [1] == "+" && T [4] [0] == '=')
            COUT << MP [T [0] + MP [T [2]] * 10 + MP [T [3] << ENDL。
        // ** + * 
        IF(T [2] == "+" && T [3] [0] == '=')
            COUT << MP [T [0] * 10 + MP [T [1] ] + MP [T [3] << ENDL。
        // ** + ** 
        IF(T [2] == "+" && T [5] [0] == '=' 
            ) COUT << MP [T [0] * 10 + MP [T [1] + MP [T [3] * 10 + MP [T [4] << ENDL。
    }
    0を返します。
}

  

おすすめ

転載: www.cnblogs.com/52dxer/p/12543493.html