题目描述
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入描述:
每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出描述:
在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入例子:
1234567890987654321123456789
输出例子:
yi san wu
解答:
n=input()
sum=0
res=[]
for i in n:
sum=sum+int(i)
zidian=["ling","yi","er","san","si","wu","liu","qi","ba","jiu"]
sum=str(sum)
for j in sum:
res.append(zidian[int(j)])
n=len(res)
s=res[0]
for z in range(1,n):
s=s+" "+res[z]
print(s)
总结:
1. 这个题我认为有两个难点:第一个是数字如何转换成拼音,第二个是如何实现输出每个拼音之间有空格但是最后却不能有空格。
2. 为了解决数字如何转换成拼音这个问题,我选择构造一个数组一一对应的装入这些拼音(这里的想法比较像构造一个字典)。
3. 最后结尾不能有空格,这个问题,我用的是构造一个循环,先把第一个元素装入数组,然后用字符串的相加方法添加空格,这样解决了结尾不能有空格的问题。