1006 换个格式输出整数

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同名文章原创代码。这样的思路其实是更加清晰,便于调试的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值