题目
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
分析
输入一个整数,将每一位进行拆分求和,将求和的每一位用汉语拼音输出,可以用一个列表与数字相对应。
看好输出的要求,要求中间有空格,而最后一个输出结果后面没有空格。
程序(python)
n=int(input())
a=str(n)
b=["ling","yi","er","san","si","wu","liu","qi","ba","jiu"]
count=0
d=[]
for i in range(len(a)):
count+=int(a[i])#数位求和
c=str(count)
for j in c:
d.append(b[int(j)])
print(' '.join(d))
知识点
输出函数print()
- 直接输出
输出类型为数值和字符串都可以利用print函数直接输出,
print(*objects, sep=' ', end='\n', file=sys.stdout)
#objects--表示要输出的对象,如果输出是多个对象的时候,要用逗号隔开,用逗号隔开的时候,输出结果之间会有空格。
#sep--用来间隔对象
#end--设定结尾,"/n"是默认的换行符," "是空格不换行。
#file--要写入的文件的对象
print("you""qian")
print("you","qian")
print("you","qian",sep="!")
运行结果:
youqian
you qian
you!qian
- 格式化输出
以"%–"格式控制符来控制输出
常用格式字符串归纳:
%s—字符串
%d—十进制整数
%o—八进制整数
%x—十六进制整数
%b—二进制整数
%f—浮点数
print("%s is %d years old"%('s',14))
输出结果:
s is 14 years old
- 不换行输出
输出在默认的时候(end="/n")即总是换行的。可以通过指定end的值来改变间隔或者换行。
for i in range(5):
print(i)
#输出:0
1
2
3
4
for i in range(5):
print(i,end=" ")
#输出:0 1 2 3 4 最后一位输出的后面带空格,且输出不换行。
for i in range(5):
print(i,end=",")
#输出:0,1,2,3,4,
想要输出结果最后一位后面不带空格,可以使用join()函数。注意,join()函数智能连接字符串,组成一个新的字符串输出。
字符串:str=“one two three”
列表:list=[‘one’,‘two’,‘three’]
元组:tuple=(‘one’,‘two’,‘three’)
'sep'.join(seq)
sep---分隔符
seq---需要连接的字符串,列表,元组,字典
str="one two three"
print(' '.join(str))
输出结果:o n e t w o t h r e e 最后一位输出结果后面是没有空格的。
list=['one','two','three']
print(','.join(list))
输出结果:one,two,three