PAT(Basic Level) 1002 写出这个数
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
| 项目 | 要求 |
|---|---|
| 时间限制 | 400 ms |
| 内存限制 | 65536 kB |
| 代码长度限制 | 8000 B |
| 判题程序 | Standard |
| 作者 | CHEN, Yue |
输入格式
每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100。
输出格式
在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例
1234567890987654321123456789
输出样例
yi san wu
代码实现
# 将字符串数字分割为单个整型数字列表
def listnum(num):
digits = []
for i in range(len(num)):
digits.append(int(num[i]))
return digits
# 数字分割,求和,数字和分割,匹配拼音,字符串连接
def sumpinyin(num):
pinyin = {
0 : 'ling',
1 : 'yi',
2 : 'er',
3 : 'san',
4 : 'si',
5 : 'wu',
6 : 'liu',
7 : 'qi',
8 : 'ba',
9 : 'jiu'
}
digitslist = listnum(num)
Sum = sum(digitslist)
list = []
for e in listnum(str(Sum)):
list.append(pinyin[e])
print(' '.join(list))
num = input()
sumpinyin(num)