21.3.5
修改版,简单了很多很多/注意int不能切片
text=input()
if len(text)==3:
print(int((text)[0])*'B'+int((text)[1])*'S',end='')
if len(text)==2:
print(int(text[0])*'S',end='')
for p in range(1,int(text[-1])+1):
print(p,end='')
第三次修改版
text=input()
if len(text)==3:
print(int((text)[0])*'B'+int((text)[1])*'S',end='')
if len(text)==2:
print(int(text[0])*'S',end='')
x=[print(p,end='') for p in range(1,int(text[-1])+1)]
一.题目
二.题目分析
本题相对简单,但容易出现逻辑不周密导致代码出问题。第一部分是输入数据处理,如何识别百位十位个位数字的大小。其次是代码输出,使用end=’'或者是text+=‘B’。代码书写时由于输入个位数不同,注意考虑位数不同带来的代码细节差异。
text=input()
number=len(text)
text0,text1,text2='','',''
for p in range(number):
if p==0:
str0=int(text[-1])
if p==1:
if number==3:
str1=int(text[1])
elif number==2:
str1=int(text[0])
if p==2:
str2=int(text[0])
if number>2:
while str2>0:
print('B', end='')
str2 -=1
if number>1:
while str1>0:
print('S', end='')
str1 -=1
if number>0:
for i in range(str0):
i=i+1
print(i, end='')
三.其他代码
这样的思路其实是更加简单的。
n = input()
if len(n)<=3:
if len(n)==3:
for i in range(int(n[0])):
print('B',end='')
for i in range(int(n[1])):
print('S',end='')
i = 1
while i <=int(n[2]):
print(i,end='')
i = i+1
elif len(n) ==2:
for i in range(int(n[0])):
print('S', end='')
i = 1
while i <= int(n[1]):
print(i, end='')
i = i+1
else:
i = 1
while i <= int(n[0]):
print(i,end='')
代码源自南淮北安的csdn同名文章原创代码。这样的思路其实是更加清晰,便于调试的。