两个整型值M和N(M、N均大于0)的最大公约数可以按照下面的方法计算:
请编写一个名叫gcd的函数,它接受两个整型参数,并返回这两个数的最大公约数。
如果这两个数中的任何一个数不大于零,函数就应该返回零。
//**************************************************************************************************************************
/*
题意是求两个数的最大公约数‘
1.两个数存在不大于零的数即返回0;
2.两个数求公约数:
M%N=0: N
M%N=R,R>0; gcd(N,R);
(小的数除以大的数,商为0,余数为小的数本身);
*/
#include<stdio.h>
int qcd(int M, int N);
int main()
{
int M = 23;
int N = 634;
printf("%d\n", qcd(M, N));
return 0;
}
int qcd(int M, int N)
{
if (M <= 0 || N <= 0) {
return 0;
}
if (M%N == 0) {
return N;
}
else if (M%N > 0) {
qcd(N, M%N);
}
}