使用vb求最大公约数的两种方法是什么?
1个回答
展开全部
VB用两种方法穷举和相减
VB用两种方法计算两个最大公约数,用inputbox输入两个数
第一种相减法
两整数a和b:
① 若a>b,则a=a-b
② 若a<b,则b=b-a
③ 若a=b,则a(或b)即为两数的最大公约数,结束
④ 若a≠b,则再回去执行①
第二种穷举法
① i= a b中的小数
② 若a,b能同时被i整除,则i即为最大公约数,结束
③ i--,再回去执行②
Private Sub Cal1(ByVal a As Integer, ByVal b As Integer)
Dim res As Integer
res = -1
Do While a <> b
If a > b Then
a = a - b
ElseIf b > a Then
b = b - a
End If
If a = b Or a <= 0 Or b <= 0 Then
Exit Do
End If
Loop
res = a
Print a
End Sub
Private Sub Cal2(ByVal a As Integer, ByVal b As Integer)
Dim res As Integer
res = -1
Dim i As Integer
i = IIf(a >= b, b, a)
Do While i > 0
If a Mod i = 0 And b Mod i = 0 Then
res = i
Exit Do
Else
i = i - 1
End If
Loop
Print res
End Sub
VB用两种方法计算两个最大公约数,用inputbox输入两个数
第一种相减法
两整数a和b:
① 若a>b,则a=a-b
② 若a<b,则b=b-a
③ 若a=b,则a(或b)即为两数的最大公约数,结束
④ 若a≠b,则再回去执行①
第二种穷举法
① i= a b中的小数
② 若a,b能同时被i整除,则i即为最大公约数,结束
③ i--,再回去执行②
Private Sub Cal1(ByVal a As Integer, ByVal b As Integer)
Dim res As Integer
res = -1
Do While a <> b
If a > b Then
a = a - b
ElseIf b > a Then
b = b - a
End If
If a = b Or a <= 0 Or b <= 0 Then
Exit Do
End If
Loop
res = a
Print a
End Sub
Private Sub Cal2(ByVal a As Integer, ByVal b As Integer)
Dim res As Integer
res = -1
Dim i As Integer
i = IIf(a >= b, b, a)
Do While i > 0
If a Mod i = 0 And b Mod i = 0 Then
res = i
Exit Do
Else
i = i - 1
End If
Loop
Print res
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询