讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。shell
輸入格式:
每一個測試輸入包含 1 個測試用例,即給出天然數 n 的值。這裏保證 n 小於 10的100次方。
app
輸出格式:
在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後一個拼音數字後沒有空格。測試
輸入樣例:code
1234567890987654321123456789
輸出樣例:blog
yi san wu
代碼:rem
package main import "fmt" func main() { //定義一個map保存數字與拼音之間的對應關係 var m = map[int]string { 0 : "ling", 1 : "yi", 2 : "er", 3 : "san", 4 : "si", 5 : "wu", 6 : "liu", 7 : "qi", 8 : "ba", 9 : "jiu", } //獲取終端輸入的數據,由於n的範圍10的100次方,因此輸入的數據要定義成字符串類型 var str string _, _ = fmt.Scanln(&str) //定義變量result,保存各個位數之間數字的和 var result = 0 for _, value := range str { result += int(value) - 48 } var arr = make([]int, 0) for result != 0 { remainder := result % 10 arr = append(arr, remainder) result /= 10 } length := len(arr) for i := 1; i <= length; i++ { if i == length { fmt.Printf("%s", m[arr[length-i]]) } else { fmt.Printf("%s ", m[arr[length-i]]) } } }