不明白解析里说的
这道题的解析写错了方法,这种方法是相减法
解析写的方法也是可以求出最大公约数的,只不过是一直交换着相互除,除到余数为0为止
非常感谢指出解析的错误~
————————如果看到这就懂了,就不用继续看了,下面是我絮叨的几句话————————
这题的两个DO循环说白了用途就是:倘若m≠n,那么如果m>n,就用m-n的值赋给m,倘若m<n,反之
这是一个数学上的方法
我举个具体的数字来带入。方便你理解
假设m=6,n=10
首先m≠n,之后m<n,所以n=n-m=10-6=4
此时m=6,n=4
m≠n,继续执行,m>n,所以m=m-n=6-4=2
此时m=2 ,n=4
m≠n,继续,m<n,所以n=n-m=4-2=2
此时m=2,n=2
m=n
LOOP
窗体上有一个名为Command1的命令按钮,并有如下程序:
Private Sub Command1_Click()
Dim m As Integer,n As Integer
m=InputBox(“输入第一个数”)
n=InputBox(“输入第二个数”)
Do While m<>n
Do While m>n
m=m-n
Loop
Do While n>m
n=n-m
Loop
Loop
Print m
End Sub
该程序的功能是是 ______ 。
A. 求数值m和n的最大公约数
B. 求数值m和n的最小公倍数
C. 求数值m和n中的较大数
D. 求数值m和n中的较小数
答案:A
解析:里层的两个Do循环分别是求m Mod n和n Mod m。显而易见,这个程序是使用辗转相除法来计算最大公约数。因此选A。