资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vb点虐 求最大公约数 vba最大公约数最小公倍数

使用vb求最大公约数的两种方法是什么?

VB用两种方法穷举和相减

在峡江等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、网站制作 网站设计制作定制网站制作,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站,成都外贸网站建设,峡江网站建设费用合理。

VB用两种方法计算两个最大公约数,用inputbox输入两个数

第一种相减法

两整数a和b:

① 若ab,则a=a-b

② 若ab,则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里面最大公约数的代码怎么理解?

这里采用的是求最大公约数的一种常用方法:辗转相除法。

辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。

比如求252和105的最大公约数:

252 ÷ 105 = 2......42

105 ÷ 42 = 2......21

42 ÷ 21 = 2......0

因此21就是252和105的最大公约数。

vb求最大公约数

'这个嘛,用我国古代数学家的“更相减损之术”就行。Private Sub Command1_Click()

Dim a, b As Integer

a = Val(Text1.Text)

b = Val(Text2.Text)Do While abIf ab Then a=a-b Else b=b-aLoopText3.Text=a

End IfEnd Sub'此算法的原理就是大数减小数,直到产生一对相等的数,这个数就是最大公约数。 '如果照着你那种方式(应该是欧里几得算法吧),可以这样改:Private Sub Command1_Click()

Dim a, b, r As Integer

If Val(Text1.Text) Val(Text2.Text) Then

a = Val(Text1.Text)

b = Val(Text2.Text)

Else

b = Val(Text1.Text)

a = Val(Text2.Text)

End If

Do

r = a Mod b

a = b

b = r

Loop Until r = 0

Text3.Text = a

End Sub

vb点虐 求两个自然数的最大公约数和最小公倍数 辗转相乘法。

最大公约数

do until a=b

if ab then

a=a-b

elseif ba then

b=b-a

end if

loop

msgbox (a)

最小公倍数

c = a

22:

If a Mod b = 0 Or b Mod a = 0 Then

If a b Then

MsgBox(a)

Else

MsgBox(b)

End If

Else

a = a + c

GoTo 22

End If

辗转相乘法是什么玩意?


新闻名称:vb点虐 求最大公约数 vba最大公约数最小公倍数
新闻来源:http://www.cdkjz.cn/article/ddcpgeo.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220