当前位置: 开源爱好者 » 编程教程 » VB教程 » 正文

VB数学算法求多个数的最大公约数

VB求多组数的最大公约数,使用相除法求最大公约数:

Option Base 1
Private Function big(ByVal m%, ByVal n%) As Integer '自定义函数
   If m < n Then t = m: m = n: n = t
    Do
     r = m Mod n  '辗转相除法求最大公约数
     If r = 0 Then Exit Do  '找到最大公约数后即退出
     m = n
     n = r
   Loop
   big = n '返回这两个数的最大公约数
End Function
Private Sub Command1_Click()
  Dim a() As Integer  '声明动态数组
  n = Val(Text1)  '先确定要求出几个数的最大公数
  ReDim a(n)
  Picture1.Print "您输入的数据依次为:"
  For i = 1 To n  '输入要求公约数的n个数
   a(i) = InputBox("请依次输入要求最大公约数的几个数据", "第" & i & "个数据:")
   Picture1.Print a(i); '输出数组元素
  Next i
  n1 = a(1)
  For i = 2 To n  'n个数调用n-1次big函数过程求最大公约数
    m1 = a(i)
    x = big(m1, n1)
    If x = 1 Then Exit For Else n1 = x  '只要某次求得的最大公约数为1,不再往下求
  Next i
  Picture1.Print
  Picture1.Print "它们的最大公约数是:"; x '显示n个数中的最大公约数
End Sub
相关内容:

CopyRight 2015© 开源爱好者 All Rights Reserved 豫ICP备16030607号 隐私声明 网站地图