PAT B1002 写出这个数(Python)

PAT甲级目录 | PAT乙级目录

题目描述

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

输入格式:

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

输出格式:

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

输入样例:

1
1234567890987654321123456789

输出样例:

1
yi san wu

易错点:

  • 注意输出末尾没有空格
  • 倒序输出

也许陌生的知识点

  • s = input()

    • 输入字符串
  • y = int(x)

    • 将变量类型转换为整型
  • y = str(x)

    • 将变量类型转换为字符串型
  • for i, t in enumerate(ans):

    • 同时遍历字符串中的字符以及字符的索引
  • print(' ' if i > 0 else '', li[int(t)], sep = '', end = '')

    • 索引判断令其在中间添加空格

    • 另一种空格分隔输出结果的方法(末尾不带空格,适用于列表)

      1
      2
      L = [1, 2, 3, 4, 5]
      print(" ".join(str(x) for x in L))

代码示例:

1
2
3
4
5
6
7
8
9
10
li = ["ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"]
s = input()
n = 0

for x in s: # 求和
n = n + int(x)

ans = str(n) # 类型转换成字符串
for i, t in enumerate(ans): # 同时遍历字符和索引
print(' ' if i > 0 else '', li[int(t)], sep = '', end = '') # 空格分隔输出