VB用兩種方法窮舉和相減
在峽江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè),峽江網(wǎng)站建設(shè)費(fèi)用合理。
VB用兩種方法計(jì)算兩個(gè)最大公約數(shù),用inputbox輸入兩個(gè)數(shù)
第一種相減法
兩整數(shù)a和b:
① 若ab,則a=a-b
② 若ab,則b=b-a
③ 若a=b,則a(或b)即為兩數(shù)的最大公約數(shù),結(jié)束
④ 若a≠b,則再回去執(zhí)行①
第二種窮舉法
① i= a b中的小數(shù)
② 若a,b能同時(shí)被i整除,則i即為最大公約數(shù),結(jié)束
③ i--,再回去執(zhí)行②
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
這里采用的是求最大公約數(shù)的一種常用方法:輾轉(zhuǎn)相除法。
輾轉(zhuǎn)相除法基于如下原理:兩個(gè)整數(shù)的最大公約數(shù)等于其中較小的數(shù)和兩數(shù)的相除余數(shù)的最大公約數(shù)。
比如求252和105的最大公約數(shù):
252 ÷ 105 = 2......42
105 ÷ 42 = 2......21
42 ÷ 21 = 2......0
因此21就是252和105的最大公約數(shù)。
'這個(gè)嘛,用我國(guó)古代數(shù)學(xué)家的“更相減損之術(shù)”就行。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'此算法的原理就是大數(shù)減小數(shù),直到產(chǎn)生一對(duì)相等的數(shù),這個(gè)數(shù)就是最大公約數(shù)。 '如果照著你那種方式(應(yīng)該是歐里幾得算法吧),可以這樣改: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
最大公約數(shù)
do until a=b
if ab then
a=a-b
elseif ba then
b=b-a
end if
loop
msgbox (a)
最小公倍數(shù)
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
輾轉(zhuǎn)相乘法是什么玩意?
網(wǎng)頁(yè)名稱:vb點(diǎn)虐
求最大公約數(shù) vba最大公約數(shù)最小公倍數(shù)
當(dāng)前鏈接:http://www.rwnh.cn/article40/ddcpgeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、做網(wǎng)站、外貿(mào)建站、商城網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)