1 到 N 的所有数字按照字典序打印

发布于 2023-09-13 12:26:21 字数 884 浏览 31 评论 0

按照字典序打印从 1 到 N 的所有数字,可以使用递归的方法实现。

首先,创建一个递归函数来进行字典序的打印,函数的输入参数包括当前要打印的数字 curr,以及总数 N。函数的递归终止条件是当 curr 大于 N 时,停止递归。

在递归函数中,首先打印当前的数字 curr ,然后递归调用函数打印从 curr * 10 到 curr * 10 + 9 这些数字之间的所有数字。但需要注意的是,当 curr * 10 大于 N 时,就不能再继续递归了,所以在递归调用前需要进行判断。

以下是使用递归实现的代码示例:

def printLexicographically(curr: int, N: int):
    if curr > N:
        return

    print(curr)

    for i in range(0, 10):
        if curr * 10 + i > N:
            return
        printLexicographically(curr * 10 + i, N)

def printLexicographicallyFromOneToN(N: int):
    for i in range(1, 10):
        printLexicographically(i, N)

# 测试示例
printLexicographicallyFromOneToN(30)  # 打印从 1 到 30 的所有数字

运行以上代码,会打印出从 1 到 30 的所有数字。

1
10
11
12
13
14
15
16
17
18
19
2
20
21
22
23
24
25
26
27
28
29
3
30
4
5
6
7
8
9

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

緦唸λ蓇

暂无简介

0 文章
0 评论
611 人气
更多

推荐作者

ni139999

文章 0 评论 0

Smile

文章 0 评论 0

木子李

文章 0 评论 0

仅此而已

文章 0 评论 0

qq_2gSKZM

文章 0 评论 0

内心激荡

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文