VB过程的递归调用,辗转相除法求最大公约数

VB过程的递归调用,辗转相除法求最大公约数

'过程的递归调用,辗转相除法求最大公约数
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

VB过程的递归调用,辗转相除法求最大公约数_第1张图片

你可能感兴趣的:(VB,开发语言)