【发布时间】:2020-04-11 06:35:52
【问题描述】:
我是一名 Python 新手。我试图找到两个数字的最大公约数(例如 a = 1071 和 b = 462)。我为此编写了两个程序。第一个正在工作,但第二个给出了错误的答案。我的程序有什么问题??
# first program (works)
a, b = 1071, 462
while b:
a, b = b, a % b
print(a)
# second program (doesn't work truly)
a = 1071
b = 462
while b:
a = b
b = a % b
print(a)
【问题讨论】:
-
a的值在评估b = a % b时更改为b。你只是在运行b = b % b。 -
是的,在第二种情况下,您已将 a 的值更改为 b,因此 b 的估值是错误的。您最好将其存储在其他变量中,然后使用它。首先它是由 python 自己处理的。
-
巴巴克,你可能想检查你已经接受的答案,尤其是如果你要依赖它来完成课堂作业(不那里有判断,但盲目地使用代码不会对你有任何好处)。虽然回答者的概念是正确的,但代码目前是完全错误的。
标签: python-3.x