You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计指定区间内各位数字不重复的数字数量?

解决方法

你可以通过添加一个计数器变量来统计符合条件的数字数量,同时还能简化原代码的冗余部分:

count = 0  # 初始化计数器
for n in range(234, 567):
    s = str(n)
    # 利用集合去重特性:如果字符串长度和集合长度相等,说明无重复数字
    if len(s) == len(set(s)):
        print(n)
        count += 1  # 符合条件则计数器加1
print(f"符合条件的数字总数:{count}")

关键修改说明:

  • 去掉了不必要的list存储所有数字,直接遍历range更高效
  • 用set(s)替代原有的逐位比较逻辑,代码更简洁且适用于任意位数的数字(不止三位数)
  • 添加count变量,每次找到符合条件的数字就自增,最后输出总数

如果你想保留原有的逐位比较逻辑,也可以这样修改原代码(注意修正原判断逻辑的漏洞):

count = 0
num_list = []
for i in range(234,567):
    num_list.append(i)
for n in num_list:
    x=[int(a) for a in str(n)]
    # 修正判断逻辑:确保三个数字两两不等
    if x[0] != x[1] and x[1] != x[2] and x[0] != x[2]:
        print(n)
        count += 1
print(f"总数:{count}")

内容的提问来源于stack exchange,提问作者Ahmed Othman Gad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:15:40