晕。用下面两个函数就行int gcd(int a, int b) // 最大公约数 { if ( b == 0 ) return a; else return gcd(b, a%b); }int lcm(int a, int b) //最小公倍数 { return a*b/gcd(a, b); }
啊!原来有直接可以用的函数啊! 简直是欺负我这样的初学者啊! 我还特意写了一个,还是贴上来吧,希望大家指正.Option Explicit Dim a As Integer Dim b As Integer Dim c As Integer Dim i As Integer Sub gongbeishu() a = Val(t1.Text) b = Val(t2.Text) If a = 0 Or b = 0 Then MsgBox ("请输入数据!") Exit Sub End If If a > b Then c = b b = a a = c End If For i = 1 To a If (i * b) Mod a = 0 Then Exit For Next i l3.Caption = i * b End Sub Private Sub Command1_Click() gongbeishu End SubPrivate Sub Form_Load() t1.Text = "0" t2.Text = "0" End Sub哈哈,我也很厉害吧!
{
if ( b == 0 ) return a;
else return gcd(b, a%b);
}int lcm(int a, int b) //最小公倍数
{
return a*b/gcd(a, b);
}
简直是欺负我这样的初学者啊!
我还特意写了一个,还是贴上来吧,希望大家指正.Option Explicit
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim i As Integer
Sub gongbeishu()
a = Val(t1.Text)
b = Val(t2.Text)
If a = 0 Or b = 0 Then
MsgBox ("请输入数据!")
Exit Sub
End If
If a > b Then
c = b
b = a
a = c
End If
For i = 1 To a
If (i * b) Mod a = 0 Then Exit For
Next i
l3.Caption = i * b
End Sub
Private Sub Command1_Click()
gongbeishu
End SubPrivate Sub Form_Load()
t1.Text = "0"
t2.Text = "0"
End Sub哈哈,我也很厉害吧!
前者用递归法虽然简洁明了,但对于我这个VB新手来说,想把它转换成VB语言还得仔细研究,不过幸好coward_c(车轴草)已经写出来比较容易看得懂的。