【问题标题】:Why is this variable returning true when it's false? [closed]为什么这个变量为假时返回真? [关闭]
【发布时间】:2017-01-19 18:37:39
【问题描述】:

我正在制作一个从 2 个数字中获取 GCD 的程序。我遇到的一个问题是,对于像 168 和 132 这样的数字,我得到的东西不能被它们中的任何一个整除。

例如,当我使用下面的代码时,我得到的是 84 而不是 12。

def gcdIter(a, b):
    minimun = min(a, b)
    maximum = max(a, b)

    for i in range(1, a + 1):
        check = minimun % 1 == 0 and maximum % i == 0
        if check == True:
            gcd = i

    return gcd

print(gcdIter(168, 132))

【问题讨论】:

  • 任何模数 1 永远是 0
  • 我正在使用 MITx 6.00.1x。我们才第 2 周。请让我休息一下,不要无礼。
  • @takendarkk 坦率地说,我看不出调试器会如何提供帮助。用另一双眼睛看代码是这里最好的方法。我个人从不使用 python 调试器(但我使用了大量的print 语句)

标签: python python-3.x computer-science


【解决方案1】:

你有一个错字。最小 % i 而不是 1

check = minimun % 1 == 0 and maximum % i == 0

【讨论】:

  • 是的,就是这样。我太笨了。
  • @JordanBaron 放心。相信我,我有过更多愚蠢的时刻。
  • minimun 变量名也有错字:)
  • @Jean-FrançoisFabre LOL 不错的收获
  • 我猜 OP 的手指在这一刻背叛了他,这也可以解释 1 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
  • 2015-10-05
相关资源
最近更新 更多