vb求最大公约数

2024-11-21 20:22:55
推荐回答(1个)
回答1:

'这个嘛,用我国古代数学家的“更相减损之术”就行。
Private
Sub
Command1_Click()
Dim
a,
b
As
Integer
a
=
Val(Text1.Text)
b
=
Val(Text2.Text)
Do
While
a<>b
If
a>b
Then
a=a-b Else
b=b-a
Loop
Text3.Text=a
End
If
End
Sub
'此算法的原理就是大数减小数,直到产生一对相等的数,这个数就是最大公约数。

'如果照着你那种方式(应该是欧里几得算法吧),可以这样改:
Private
Sub
Command1_Click()
Dim
a,
b,
r
As
Integer
If
Val(Text1.Text)
>
Val(Text2.Text)
Then
a
=
Val(Text1.Text)
b
=
Val(Text2.Text)
Else
b
=
Val(Text1.Text)
a
=
Val(Text2.Text)
End
If
Do
r
=
a
Mod
b
a
=
b
b
=
r
Loop
Until
r
=
0
Text3.Text
=
a
End
Sub