题目
让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。
输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例1:
234
输出样例1:
BBSSS1234
输入样例2:
23
输出样例2:
SS123
代码:
nstr=input()
n=int(nstr)
nlist=[]
for i in range(len(nstr)):
nlist.append(int(nstr[i]))
nlist.reverse()
def numstr(x):
oristr="123456789"
if x==0:
numstr=""
else:
numstr=oristr[0:x]
return numstr
def pristr(x,swei=0,bwei=0):
gwei=x[0]
if len(x)==2:
swei=x[1]
if len(x)==3:
swei=x[1]
bwei=x[2]
print("B"*bwei+"S"*swei+numstr(gwei))
pristr(nlist)
思路:
1.将输入的数字字符串转存到一个列表里。
2.然后利用字符串切片来解决问题”12345…n“的问题。
3.写了一个特定输出字符串的函数
解题的坑:当个位数数字为零时,那个”12345…n“为”“(空字符串)。

383

被折叠的 条评论
为什么被折叠?



