VB过程的递归调用,辗转相除法求最大公约数
VB过程的递归调用,辗转相除法求最大公约数
'过程的递归调用,辗转相除法求最大公约数
Private Function gys(ByVal m%, ByVal n%) As IntegerDim r%r = m Mod n 'm大或者n大都无所谓,这个不影响计算,由于辗转相除法的算法,最终大值会作为被除数,小值作为除数。If r = 0 Thengys = nElsegys = 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