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=(ado
{
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: Y = K
Loop
最大公约数 = Y
pa(I + 1) = 最大公约数
Next
MaxMul公约数 = pa(I)
End Function
int maxyue(int a[],int n)
{
int i,x,y,result,k=0;
for(i=0;i
y=(a[i]do
{
k=x % y;
if(k==0) break;
x=y;y=k;
}while(k!=0);
a[i+1]=y;
}
result=a[i];
return result;
}
晕,这么简单还要发问,发问居然这么低的分
好多练习题就是类似问题,
自己去找啦