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

Python实现GCD最大公约数时报ZeroDivisionError除零错误如何解决

错误原因
  • 循环内变量赋值顺序错误:
    执行num1 = num2后,num1已经被覆盖为原来的num2值,后续计算num2 = num1 % num2等价于计算原num2 % 原num2,结果必然为0,下一次循环判断num1 % num2 != 0时就会触发除零异常。
  • 分支逻辑不全:仅当num1 < num2时才会进入计算逻辑,若输入满足num1 >= num2,函数没有显式返回值,会返回None;且两数相等时返回元组,和其他分支返回单值的逻辑不一致。
修复方案

修正循环赋值顺序,同时补全分支逻辑,优化后的代码如下:

def GCD(num1, num2):
    # 保证大数在前,不需要单独判断两数相等的情况
    if num1 < num2:
        num1, num2 = num2, num1
    while num2 != 0:
        temp = num1 % num2
        num1 = num2
        num2 = temp
    return num1

print(GCD(12, 18))
运行结果

输出为6,符合预期,无报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:15:07