vb算法例子(辅导孩子利器-求最大公约与最小公倍数)
vb算法例子(辅导孩子利器-求最大公约与最小公倍数)第四步:继续重复上一步做法,直到余数为0的时候,最后一步两个相除的数,较小的一个数即为最大公约数。第三步:继续使用上一步余数R2和较小数B两个进行比较,用其中小的一个数除以大的数,得到第三个余数R3。1.在VB中(A B)表示A与B的最大公约数,最大公约数最经典方法是辗转相除法,也叫欧几里得算法。第一步:使用两个数中较大的一个数A除以较小的一个数B,得到的余数R1。第二步:使用较小的数B除以余数R1,得到第二个余数R2。
今天学习了刘金玉老师零基础VB教程的第53期,学习的主要内容是求解最大公约数与最小公倍数。
一、求解最小公倍数
1.数A与数B的最小公倍数=A*B/(A B),即A乘以B除以A与B的最大公约数。
二、求解最大公约数
1.在VB中(A B)表示A与B的最大公约数,最大公约数最经典方法是辗转相除法,也叫欧几里得算法。
第一步:使用两个数中较大的一个数A除以较小的一个数B,得到的余数R1。
第二步:使用较小的数B除以余数R1,得到第二个余数R2。
第三步:继续使用上一步余数R2和较小数B两个进行比较,用其中小的一个数除以大的数,得到第三个余数R3。
第四步:继续重复上一步做法,直到余数为0的时候,最后一步两个相除的数,较小的一个数即为最大公约数。
2.补充知识:Do while...loop循环
Do while 执行代码的条件
需要执行的代码
loop
只要条件为真,那么继续执行下一次循环。这个条件循环语句,do while后面的执行代码至少需要执行一次。
3.案例:开发计算最大公约数和最小公倍数的工具
①如图新建控件2个label控件,4个text控件,两个command控件。
②输入代码:
Function func(a As Integer b As Integer) As Integer
If a < b Then
Dim C%
C = a
a = b
b = C
End If
Dim r%
r = a Mod b
Do While r <> 0
a = r
If a < b Then
C = a
a = b
b = C
End If
r = a Mod b
Loop
func = b
End Function
Private Sub Command1_Click()
Dim a% b% GYS%
a = Val(Text1.Text)
b = Val(Text2.Text)
GYS = func(a b)
Text3.Text = GYS
End Sub
Private Sub Command2_Click()
Dim a% b% GBS%
a = Val(Text1.Text)
b = Val(Text2.Text)
GBS = a * b \ func(a b)
Text4.Text = GBS
End Sub
③运行效果详见视频