剑指offer 打印从 1 到最大的 n 位数

题目

输入数字 n,按顺序打印出从 1 最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数即 999。

思路

递归,对于每一个长度,输出说有可能的值。

代码

class Solution:
    def __init__(self):
        self.next = []
    def printNum(self, nums, n):
        if not nums:
            for i in range(1, 10):
                print(str(i))
                self.next.append(str(i))
        else:
            for num in nums:
                for i in range(10):
                    print(str(num + str(i)))
                    self.next.append(str(num + str(i)))
    def printAll(self, n):
        for l in range(1, n + 1):
          nums = self.next[:]
          self.next.clear()
          self.printNum(nums, n)

猜你喜欢

转载自blog.csdn.net/y12345678904/article/details/80689063