vb大题,编写一个过程计算两个整数的最大公约数。 求高手解答,表示不会 20
展开全部
分析:首先要搞清楚什么是约数,如果a 除以b的余数为0,那么a称为b的倍数,b称为a 的约数;什么又是公约数?几个数所共同拥有的约数就叫公约数。什么又是最大公约数?这几个数所共同拥有的公约数中最大的数就是最大公约数;由此可见最大公约数一定不大于给定的数中最小的那个数。
你遇到的问题是求两个整数的最大公约数。因此我们可以先获取这两个数中较小的那个,然后丙来计算他们的最大公约数。
我们需要定义几个变量:1、tempMin 用来存放较小的那个数;2、i 用来循环计数,i从2开始,每次增加1;3、gcd 用来计算最大公约数; 4、假定你所给的数取值范围是integer,并且都大于2,如果是1就没意义了
private Function GreatestCommonDivitor(byval a as Integer,byval b as integer ) as Integer
dim tempMin as Integer
dim i as integer
dim gcd as integer = 1
'求出较小的那个数
if a>= b then
tempMin = b
else
tempMin = a
end if
for i = 2 to tempMin
'mod是取余数的运算符
if a Mod i= 0 and b mod i = 0 then
gcd = gcd * i
end if
next
GreatestCommonDivitor = gcd
End Function
你遇到的问题是求两个整数的最大公约数。因此我们可以先获取这两个数中较小的那个,然后丙来计算他们的最大公约数。
我们需要定义几个变量:1、tempMin 用来存放较小的那个数;2、i 用来循环计数,i从2开始,每次增加1;3、gcd 用来计算最大公约数; 4、假定你所给的数取值范围是integer,并且都大于2,如果是1就没意义了
private Function GreatestCommonDivitor(byval a as Integer,byval b as integer ) as Integer
dim tempMin as Integer
dim i as integer
dim gcd as integer = 1
'求出较小的那个数
if a>= b then
tempMin = b
else
tempMin = a
end if
for i = 2 to tempMin
'mod是取余数的运算符
if a Mod i= 0 and b mod i = 0 then
gcd = gcd * i
end if
next
GreatestCommonDivitor = gcd
End Function
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询