急急急!!vb高手请帮下忙!万分感谢

来源:百度知道 编辑:UC知道 时间:2024/06/17 18:48:56
Private Function f(a As Integer,b As Integer) As Integer
Dim r As Integer,t As Integer
If a<b Then t=a:b=t
Do
r=a Mod b
If r=0 Then Exit Do
a=b:b=r
Loop
f=b
End Function
Private Sub Command1_Click()
Dim m As Integer,n As Integer
m=InputBox("m="):n=InputBox("n=")
Forn1.Cls:Print f(m n)
End Sub
(1)运行是若输入m值为15,n值为25,窗体上的显示结果为?
(2)运行是若输入m值为24,n值为16,窗体上的显示结果为?
(3)运行是若输入m值为123,n值为23,窗体上的显示结果为?

最好能解释下 题目看不懂啊。。。。

求2个数的最大公约数的函数过程!

Private Function f(a As Integer,b As Integer) As Integer
Dim r As Integer,t As Integer
If a<b Then t=a:a=b:b=t'这里改一下 这句好像是多余的
Do
r=a Mod b '求两个数的余数
If r=0 Then Exit Do
a=b:b=r '余数不为0是,让除数b做被除数,让余数r做除数,再次相除,知道余数为0时退出循环
Loop
f=b '退出循环时的除数b的值就是最大公约数!这个方法还可以求最小公倍数
End Function
Private Sub Command1_Click()
Dim m As Integer,n As Integer
m=InputBox("m="):n=InputBox("n=")
Form1.Cls:Print f(m,n) '这里的form估计也是你写错了,还有参数之间用逗号隔开
End Sub

没啥好解释的,就是一种特殊的算法,求最大公约数,好像叫 “辗转相除求公约数法”