0
0
已采纳
朱宇辰
初级守护
初级守护
if(num1 < num2)//交换
{
num1^=num2;
num2^=num1;
num1^=num2;
}
x = num1;
y = num2;//让num1,num2值不变
while(y != 0)
{
temp = x%y;
x = y;
//cout<<"x="<<x<<endl;
y = temp;
//cout<<"x="<<y<<endl;
}
当然,还有递归版本,可以追问
朱宇辰在2018-02-04 15:26:43追加了内容
int gcd(int a,int b){
if((a%b)==0) return b;
else return gcd(b,a%b)
}
也可以递归。
0
樊澄宇
新手光能
新手光能
最大公约数可以用辗转相除法:
int gcd(int a,int b)
{
if (a%b==0) return b;
return gcd(b,a%b);
}
最小公倍数只需要将其中一个数除以最大公约数,再乘另一个数:
a/gcd(a,b)*b
0
刘睿轩
中级光能
中级光能
int m, n, r;
int s;
scanf("%d %d", &m, &n);
s = m * n;
while(n != 0) {
r = m % n;
m = n;
n = r;
}
printf("%d ", s/m);
printf("%d", m);
0