任务和代码:
/*
*All rights reserved
*文件名称:main.c
*作者: Osseyda
*完成日期:2017.11.6
*版本号:v2.
*
*问题描述:两数最大公约数的递归版(辗转相除法)
*递归思路:
有两整数a和b(a>b):
① a%b得余数c
② 若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行 ①
例如,求27和15的最大公约数的过程为:
27%15=12 15%12=3 12%3=0
3即为最大公约数
*/
#include <stdio.h>
int main(){
int a,b,g;
scanf("%d %d",&a,&b);
g=mygcd(a,b);
printf("最大公约数是:%d\n", g);
return 0;
}
int mygcd(int m,int n){
if(m < n){
int temp = m;
m = n;
n = temp; //n是较小的数
}
if(n == 0)
return m; //基准条件
return mygcd(n, m%n);
}
/*
*All rights reserved
*文件名称:main.c
*作者: Osseyda