这个简单的公约数为什么不能跑
欧几里得求公约数def gcd(x,y):
while 1:
t = x % y
x = y
y = t
return x
这个为什么程序报错呢??????
def gcd(x,y):
while y:
t = x % y
x = y
y = t
return x
但是1改成y为什么就可以了呢 W1ND123 发表于 2021-9-21 08:47
当你调用函数,gcd(2,4),这个时候y等于4,不也是数字吗,这样子函数内部就是while 4,为什么能跑呢?
还有 ...
死循环有的会报错,比如栈溢出啥的
而有的时候就不报错,
while后面跟一个数字的情况分俩种
while 0 这种情况就是循环终止了
while 非0 这就是一直循环直至降到0或升到0
而这个数字如果一直都不改变,那就是死循环 while 1 是死循环,而 while y 不是。 jackz007 发表于 2021-9-20 21:07
while 1 是死循环,而 while y 不是。
当你调用函数,gcd(2,4),这个时候y等于4,不也是数字吗,这样子函数内部就是while 4,为什么能跑呢?
还有一个问题,死循环程序会报错吗,不是只是一直循环罢了吗
望解答,小白问题多,谢谢!!!!!! jackz007 发表于 2021-9-20 21:07
while 1 是死循环,而 while y 不是。
哦哦,刚刚自己研究了一下,这个程序,我已经明白为什么一定要是y了,谢谢大佬的解答
不过我还有个小问题,就是死循环是没办法跑起来的吗,我记得我用while 死循环打印一个东西,会一直打印到崩溃呀 wp231957 发表于 2021-9-21 09:05
死循环有的会报错,比如栈溢出啥的
而有的时候就不报错,
while后面跟一个数字的情况分俩种
明白了,感谢!!!!!!! 开卷有益,多多益善·····
页:
[1]