Python打印指定重复数字图案时多余零问题及合规实现需求
Python 实现指定数字图案(解决多余零问题)
需要生成的图案
1 22 333 4444
实现约束条件
- 不使用字符串
- 代码必须为2行
- 仅允许使用1个for循环
- 仅接受用户输入
- 不使用任何额外库
现有问题
尝试的代码可运行,但会额外打印一个零:
for i in range(int(input())): print(((10**i)//9)*i)
输入5时输出:
0 1 22 333 4444
解决方案
问题根源是循环从0开始,当i=0时计算结果为0。只需调整循环的起始值为1,并修正数值计算逻辑即可:
方案1
for i in range(1, int(input()) + 1): print(((10**i - 1) // 9) * i)
方案2
for i in range(1, int(input()) + 1): print(((10**i) // 9) * i // 10)
逻辑说明
- 循环范围改为
range(1, int(input())+1),直接跳过i=0的情况,生成从1到输入值的循环变量 (10**i - 1) // 9会生成由i个1组成的整数(例如i=2时得到11),乘以i后就得到i个i组成的数,完美匹配需求- 方案2通过
//10抵消10**i//9多出来的一位,同样能得到正确结果
内容的提问来源于stack exchange,提问作者Srinu
相关产品推荐
相关产品推荐

