1题目:
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10**100
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
2思考过程:
主要需要完成四个步骤:第一,判断小于 10**100;第二,求和;第三,转为拼音;第四,添加空格
其中包括三种方法:(1)普通的if语句,(2)列表,(3)字典
3程序:
(1)普通的if语句
number = input()
sum = 0
if int(number) < 10**100 :
for numbers in number :
sum = sum + int(numbers)
strsums = str(sum)
info=[]
for strsum in strsums :
if strsum == "1":
info.append("yi")
elif strsum == "2":
info.append("er")
elif strsum == "3":
info.append("san")
elif strsum == "4":
info.append("si")
elif strsum == "5":
info.append("wu")
elif strsum == "6":
info.append("liu")
elif strsum == "7":
info.append("qi")
elif strsum == "8":
info.append("ba")
elif strsum == "9":
info.append("jiu")
elif strsum == "0":
info.append("ling")
print(' '.join(info))
(2)列表
number = input()
sum = 0
if int(number) < 10**100 :
for numbers in number :
sum = sum + int(numbers)
strsums = str(sum)
listTag = ["ling","yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"]
info=[]
for strsum in strsums :
strNum = listTag[int(strsum)]
info.append(strNum)
print(' '.join(info))
(3)字典
number = input()
sum = 0
if int(number) < 10**100 :
for numbers in number :
sum = sum + int(numbers)
strsums = str(sum)
dict={'1':'yi',
'2':'er',
'3':'san',
'4':'si',
'5':'wu',
'6':'liu',
'7':'qi',
'8':'ba',
'9':'jiu',
'0':'ling'
}
info = []
for strsum in strsums :
info.append(dict.get(strsum))
print(' '.join(info))
4结果:
输入
1234567890987654321123456789
输出
yi san wu
网友评论