PATグレードBブラシレコード-1002この番号を書き込む(20ポイント)

正の整数nを読み取り、その桁の合計を計算し、合計の各桁を中国語のピンインで書き込みます。

入力フォーマット:

各テスト入力には、自然数nの値を与える1つのテストケースが含まれます。ここでは、nが10 100未満であることが保証されています。

出力フォーマット:

nの数字の合計の各数字が1行で出力されます。ピンインの数字の間にはスペースが1つありますが、行の最後のピンインの数字の後にはスペースがありません。

入力例:

1234567890987654321123456789

出力例:

yi san wu

アイデア

タイトルの意味は、数値の入力文字列の各桁を合計して、結果を中国語のピンインで出力することです。たとえば、タイトルで指定されたサンプルは1 + 2 + 3 +…+ 7 + 8 + 9 = 135である必要があります、「イサンウ」が出力されます。

次に、文字列処理を使用(またはCの文字配列を使用)し、最初に文字列全体を文字列で読み取り、次に文字列の各ビットを整数に変換します(-'0 'で実行されます)。それらを一緒に追加し、最後に取得した結果を文字列に変換し、各ビットに対応する中国語ピンインを取得します(ここでは文字列配列を使用して1対1の対応を作成し、添え字は対応する整数です。下付き文字が取る文字列は、その整数に対応する中国語のピンインです)、詳細はコードを参照してください〜

コード

#include<string>
#include<iostream>
using namespace std;
char number[10][11]={"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
int main(){
    string tmp;
    cin>>tmp;
    long long sum = 0;
    for(int i=0;i<tmp.length();i++) sum += tmp[i]-'0';
    string result = to_string(sum);
    for(int i=0;i<result.length();i++){
        if(i==0) cout<<number[result[i]-'0'];
        else cout<<" "<<number[result[i]-'0'];
    }
    return 0;
}
元の記事を54件公開 27 件を獲得 4978件を表示

おすすめ

転載: blog.csdn.net/weixin_42257812/article/details/105521156