題目地址:https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384ios
讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。測試
每一個測試輸入包含 1 個測試用例,即給出天然數 n 的值。這裏保證 n 小於10的100次方。spa
在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後一個拼音數字後沒有空格。調試
1234567890987654321123456789
yi san wu
由於天然數n可能爲很大的數字,因此使用字符串接受輸入,而後遍歷每一個字符,相加得出各位數字之和,計算和以後須要再轉化爲字符串,而後根據數字與漢語拼音的映射輸出便可。code
#include <iostream> #include <string> #include <stdlib.h> #include <sstream> using namespace std; int main(int argc, char** argv) { string seq; int number = 0; string map[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; cin >> seq; // 計算各位數字之和 for (char i : seq) { number += i - 48; } stringstream ss; ss << number; // 將數字之和轉化爲字符串 string result = ss.str(); // 映射輸出漢語拼音 int length = result.length(); for (int i = 0; i < length; i++){ cout << map[result[i] - 48]; if (i != length-1 ){ cout << " "; } } }