1. 程式人生 > >1002. 寫出這個數 (20)-PAT乙級真題

1002. 寫出這個數 (20)-PAT乙級真題

讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。

輸出格式:
在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後一個拼音數字後沒有空格。

輸入樣例:
1234567890987654321123456789

輸出樣例:
yi san wu

分析:用string接收輸入,string的每一位數字累加到sum裡面,再將sum轉化為string型別的num,對num的每一位輸出對應中文拼音~

 1 #include <string>
 2 using namespace
std; 3 int main() { 4 string s; 5 cin >> s; 6 int sum = 0; 7 string str[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; 8 for (int i = 0; i < s.length(); i++) 9 sum += (s[i] - '0'); 10 string num = to_string(sum); 11 for (int i = 0
; i < num.length(); i++) { 12 if (i != 0) cout << " "; 13 cout << str[num[i] - '0']; 14 } 15 return 0;