求助如何编"辗转相除法"
vb吧
全部回复
仅看楼主
level 1
Kimiceman 楼主
谢谢了!
2007年03月25日 12点03分 1
level 0
我见过一个C语言的例子是用来求最大公约数的,等下我试改成VB
2007年03月25日 13点03分 2
level 1
Kimiceman 楼主
恩请问要多久?谢谢了
2007年03月25日 14点03分 3
level 0
Private Sub Command1_Click()Dim a As Long, b As Long, i As Longa = CLng(Text1.Text): b = CLng(Text2.Text)If a < b Then i = a: a = b: b = iPrint yu(a, b)End SubPrivate Function yu(ByVal a As Long, ByVal b As Long) As LongDim i As LongDo i = a Mod b a = b b = iLoop Until i = 0yu = aEnd Function'by tzwsoho'当然,你也可以用递归的算法代替我的那个循环的!
2007年03月25日 14点03分 4
level 1
Kimiceman 楼主
太感谢了
2007年03月25日 14点03分 5
level 6
请问大虾,,,什么是辗转相除法
2007年03月25日 15点03分 6
level 1
就是求两数的最大公约数的算法
2007年03月25日 16点03分 7
level 13
'******************************************** 2 个数的最大公约数与最小公倍数'最大公约数可是小学算术的课程啊,呵呵.'就是两个数能同时都可被某数值整除的因数叫做公约数.'这几个自然数的公约数中,最大的一个就叫做 最大公约数.'两个数的最小公倍数是这两个数的积被它们的最大公约数去除.Dim a%, b%, r%, maxv%, minv%Private Sub Command1_click() me.cls '最大公约数 a = Val(Text1.Text) b = Val(Text2.Text) maxv = IIf(a > b, a, b) minv = IIf(a < b, a, b) Do r = maxv Mod minv: maxv = minv: minv = r Loop While (r <> 0) '最小公倍数 minv = a * b / maxv print "最大公约数 =" & Str(maxv) & Space(2) & "最小公倍数=" & Str(minv)End Sub
2007年03月26日 00点03分 8
1