读入一个正整数 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]]) } } }