VB过程的递归调用,辗转相除法求最大公约数
csharp
'过程的递归调用,辗转相除法求最大公约数
Private Function gys(ByVal m%, ByVal n%) As Integer
Dim r%
r = m Mod n 'm大或者n大都无所谓,这个不影响计算,由于辗转相除法的算法,最终大值会作为被除数,小值作为除数。
If r = 0 Then
gys = n
Else
gys = gys(n, r)
End If
End Function
Private Sub Command1_Click()
Dim x%, y%
x = Val(Text1.Text)
y = Val(Text2.Text)
Print gys(x, y)
End Sub