编程:VB的一个小小问题?

来源:百度知道 编辑:UC知道 时间:2024/05/22 02:12:45
VB!~
VB!~
VB!~
VB!~
今天数学课本上的一道题目:m>n 是正整数 要求,求两数的最大公约数

我想用辗转相减法求两数的最大公约数...

展转相减法的条件:两数不能同时被2整除,即不能同时为偶数.

我想问一下,因为我还不知道如何表示"偶数"什么的~

所以我想了一种方法,
就是
x=m MOD 2 a=m/2
y=n MOD 2 b=n/2
然后判断x,y(余数)是否为0,若不是,那就
m=a
n=b
再继续上边的步骤(x=m MOD y=n MOD 2 2 a=m/2 b=n/2)
一直到x或y=0时停止循环

然后再进行展转相减法的步骤~

我不知道该怎么写,有谁能规范地写出来给我吗?

会的帮帮忙~

不就是求最大公约数嘛,从较小的那个数开始循环到1,如果能被两个数同时整除,就是了呗。
dim a,b,c,i
a=100
b=50
if a>b then
c=b
else
c=a
end if
for i=c to 1
if (a mod i)=0 and (b mod i)=0 then
c=i
exit for
end if
next
msgbox c & "就是最大公约数"

Public Function gcd(A As Long, B As Long)
Dim m As Integer, n As Integer, r As Integer
m = A
n = B
Do
r = m Mod n
m = n
n = r
Loop Until r = 0
gcd = A / m * B
End Function

偶数就是被2整除的数了啊
if m mod 2= 0 then

这个就可以判断了

可以加我QQ136577800我跟你讨论一下 我做过2年的VB培训

private sub form_click()
dim a as single,b as single,c as single
a=100
b=50
if a>b then
c=b
else
c=a
end if
for i=c to 1
if (a mod i)=0 and (b mod i)=0 then
c=i
exit for
end if
next
msgbox c & "就是最大公约数"

m=in