📌  相关文章
📜  打印所有n位严格递增的数字(1)

📅  最后修改于: 2023-12-03 15:25:45.689000             🧑  作者: Mango

打印所有n位严格递增的数字

本程序的目标是打印出n位严格递增的数字。具体实现方法如下:

算法思路

首先需要定义一个递归函数 print_increasing_numbers,这个函数的参数包括当前已经递增到的数字 num,当前已经确定的数字个数 count 以及总的数字个数 n

在函数内部,首先需要判断当前已经确定的数字个数是否等于总的数字个数。若是,则打印 num,结束递归。否则,需要从 num 的个位数字向高位数字尝试增加数字,递归调用 print_increasing_numbers 函数。

代码片段
def print_increasing_numbers(num, count, n):
    if count == n:
        print(num)
        return

    start_digit = 0 if not num else num % 10 + 1
    for digit in range(start_digit, 10):
        new_num = num * 10 + digit
        print_increasing_numbers(new_num, count + 1, n)
程序运行
n = 3
print_increasing_numbers(0, 0, n)

程序输出:

123
124
125
126
127
128
129
134
135
136
137
138
139
145
146
147
148
149
156
157
158
159
167
168
169
178
179
189