1、编写递归函数求两个正整数a
和b
的最大公约数(GCD,Greatest Common Divisor),使用Euclid算法:
-
如果
a
除以b
能整除,则最大公约数是b
。 -
否则,最大公约数等于
b
和a%b
的最大公约数 -
#include<stdio.h>
int gcd(int a,int b)
{
if(a%b==0)
{if(b>0)
return b;
else
return -b;
}else
{
int recurse = a%b;
int result = gcd(b,recurse);
return result;
}
}
int main(void)
{
printf("Please input two number:");
int a,b;
scanf("%d",&a);
scanf("%d",&b);
printf("%d and %d 's gcd is:%d/n",a,b,gcd(a,b));
return 0;