这代码为什么不行@初音✨七奈
vb吧
全部回复
仅看楼主
level 7
这代码为什么不行@初音✨七奈
2020年10月16日 13点10分 1
level 15
把Do...Loop循环的部分改成这样:
Do
x = a Mod b
a = b
b = x
Loop While x <> 0
然后,这样求出的最大公约数应该是a,不是b,b已经和x一样等于0了
2020年10月16日 14点10分 2
level 15
或者,还有一种改法:
x = a Mod b '在循环之前先计算一次余数
Do While x <> 0 '这样才能在第一次循环之前用这个条件判断,否则就进不了循环了
a = b
b = x
x = a Mod b
Loop
这样计算出来的最大公约数就是在b当中了
你可以比较一下这两种写法
2020年10月16日 14点10分 3
level 7
为什么要先进入循环而不能先判断
2020年10月16日 14点10分 4
因为在x还没有被赋值时,x的初始值就是0,所以x<>0的条件不成立,也就无法进入循环了
2020年10月16日 14点10分
1