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

Python while循环实现区间整除计数 代码错误排查

练习题纠错:闭区间可整除数统计

题目要求

输入3个满足 numX ≥ numY ≥ numZ 的整数,必须使用while循环实现逻辑,统计numX到numZ闭区间内,所有可以被numY整除的整数总个数。

原代码存在的问题

  • 循环遍历逻辑错误:原代码同时对x做递减、对z做递增操作,循环终止条件设为x >= y >= z,既没有完整覆盖[numZ, numX]的整个闭区间范围,还会在区间长度奇偶性不同时出现漏数、重复遍历的问题
  • 整除判断逻辑错误:原判断条件用or同时校验x和z两个值的整除性,会导致同一个数被重复计数,甚至出现区间外数值被误统计的情况
  • 遍历思路冗余:统计连续闭区间的符合条件值,不需要双向移动指针,单方向逐一枚举区间内所有值即可实现准确统计

修正后代码(满足while循环要求)

print("请输入3个整数,需满足 numX ≥ numY ≥ numZ 的规则")
x = int(input("numX: "))
y = int(input("numY: "))
z = int(input("numZ: "))

# 保存原始输入值,用于最终结果输出
origin_x, origin_y, origin_z = x, y, z
div_count = 0

# 从区间最小值z开始逐一遍历,直到遍历到区间最大值x
current_num = z
while current_num <= x:
    if current_num % y == 0:
        div_count += 1
    current_num += 1

print(f"{origin_x}到{origin_z}的闭区间内,共有{div_count}个数字可以被{origin_y}整除")

逻辑说明

  • 用current_num作为遍历游标,初始值设为区间最小值z,保证遍历起点正确
  • 循环终止条件设为current_num <= x,确保闭区间内所有整数都被遍历到,不会漏数也不会超出区间范围
  • 每轮循环只判断当前游标指向的单个数字是否满足整除要求,判断完成后游标加1,计数准确无重复

内容的提问来源于stack exchange,提问作者user17730718

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:24:21