题目:输入数字n,按顺序从1打印到最大的n位十进制数。例如,输入3,则打印1, 2, 3, ..., 999
def printToMaxOfNDigits(n):
"""
打印1, 2, ..., 99999(n个9)
可以从1开始然后用大数加法加到n个9,也可以使用递归方法实现
"""
def helper(idx):
# 递归出口就是设置完最后一位
if idx == n - 1:
for j in range(n):
if number[j] != ‘0‘:
break
if number[j] == ‘0‘:
return
else:
print(‘‘.join(number[j:]))
return
for k in range(10):
# 对于每一位都有10个数字可选,设置完当前位之后就递下去设置下一位,设置完n位就打印
number[idx + 1] = str(k)
helper(idx + 1)
if n < 1:
return
number = [‘0‘] * n
for i in range(10):
# 对于第1位,有10个数字可选
number[0] = str(i)
helper(0)
原文地址:https://blog.51cto.com/jayce1111/2381613
时间: 2024-10-10 14:57:31