C语言题目 递归计算两个正整数的最大公约数

2025-03-15 03:34:19
推荐回答(2个)
回答1:

#include
void swap(int *m,int *n){
int t;
if(m < n){
t = n;
n = m;
m = t;
}
}
int f(int m,int n){
if(m%n == 0)return n;
else
return f(n,m%n);
}
int main(){
int p = 0,m = 0,n = 0;
printf("请按照由大到小的顺序输入两个整数,用空格隔开:\n");
scanf("%d%d",&m,&n);
swap(m,n);
p = f(m,n);
printf("两个数的最大公约数是:%d\n",p);
return 0;
}

回答2:

设计一个循环,循环从两个数中最小的一个开始,然后看循环的数能否同时整除这两个数,若不行,就减一在此遍历,若可以,就找到了这两个数的最大公约数