Python之写出这个数

学习记录

写出这个数!!!

读入一个正整数n,计算其各位数字之和,用汉语拼音写出和的每一个数字。

输入格式:

每个测试输入包含一个测试用例,即给出自然数n的值,这里保证n小于10^100

输出格式:

在一行内输出n的各位数字之和的每一位,拼音数字间有一个空格,但一行的最后一个拼音后面没有空格。

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

思路

  • [1 ] 输入
  • [ 2] 要得到每一位数并且加起来,考虑到列表
  • [ 3] 得到累加和,得有0~9对于的拼音,要取出每位的值并找到对应的拼音加起来。
  • [4 ] 输出
n=input("输入:")
l=list(n)
sun=0
for i in range(0,len(l)):
    sun=sun+int(l[i])
ss=list(str(sun))
s=''
for j in range(0,len(ss)):
    if int(ss[j])==1:
        s=s+'yi'+' '
    elif int(ss[j])==2:
        s=s+'er'+' '
    elif int(ss[j])==3:
        s=s+'san'+' '
    elif int(ss[j])==4:
        s=s+'si'+' '
    elif int(ss[j])==5:
        s=s+'wu'+' '
    elif int(ss[j])==6:
        s=s+'liu'+' '
    elif int(ss[j])==7:
        s=s+'qi'+' '
    elif int(ss[j])==8:
        s=s+'ba'+' '
    elif int(ss[j])==9:
        s=s+'jiu'+' '
    elif int(ss[j])==0:
        s=s+'ling'+' '
   
print(s.rstrip())

目前能最先想到的思路,代码看起来不够简洁,还有很大的优化空间。

加油!奥利给!

上一篇:BUUCTF逆向刷题(1)


下一篇:统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序