求一个用for...next和if...end if编写的求最大公约数的VB程序代码.

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:59:50

VB和对应的C程序都编好了,为了程序简洁,用iif,不用if...end if
(一)求出两个数的最大公约数
Function Max公约数(A As Long, B As Long)
Dim X As Long, Y As Long, K As Long
X = IIf(A >= B, A, B) 'x存入最大值
Y = IIf(A <= B, A, B) 'y 存入最小值
Do '辗转相除法
K = X Mod Y: If K = 0 Then Exit Do
X = Y: Y = K
Loop
Max公约数 = Y
End Function

int maxyue(int a,int b)
{int x,y,result,k=0;
x=(a>b)? a:b;
y=(a<b)? a:b;
do
{
k=x % y;
if (k==0) break;
x=y;y=k;
}
while (k!=0);
result = y;
return result;
}

(二)求出多个数的最大公约数
Function MaxMul公约数(pa())
Dim X As Long, Y As Long, K As Long, 最大公约数 As Long
Dim I As Integer
For I = LBound(pa) To UBound(pa) - 1
X = IIf(pa(I) >= pa(I + 1), pa(I), pa(I + 1)) 'x存入最大值
Y = IIf(pa(I) <= pa(I + 1), pa(I), pa(I + 1)) 'y 存入最小值
Do '辗转相除法求出最大公约数
K = X Mod Y: If K = 0 Then Exit Do
X = Y: