正の整数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;
}