全部问题 > 当前问题

不明白解析里说的

共 4 个回答

"淡然的微笑丶苍白了忧伤 2017-2-16 20:49:43

我选的是c,题目中是m=m-n,n=n-m,为什么解析里说m mod n ,n mod m

最佳答案

啪嗒啪嗒 2017-2-16 21:07:27

这道题的解析写错了方法,这种方法是相减法

解析写的方法也是可以求出最大公约数的,只不过是一直交换着相互除,除到余数为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



啪嗒啪嗒 2017-2-16 21:13:41

回复 "淡然的微笑丶苍白了忧伤:如果只是求较大数,那么代码在比较出大小之后就该停止了,而不需要再去把m和n的值各种相减再比较了

林西网 2017-3-5 11:18:18

说白了说简单一点,此题就是用相减法求m和n的最大公约数,所以答案仍然是A

窗体上有一个名为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。