要求两个整数m、n的最大公约数,
从m、n中的最小数开始,不失一般性,假设为x
试探x,如果能同时被m、n整除,则x就是最大公约数,否则x--,继续试探
#include <stdio.h>
int min(int x,int y)
{
if(x>=y)
{
return y;
}
return x;
}
int gcd(int m,int n,int x)
{
if(m%x==0 && n%x==0)
{
return x;
}
return gcd(m,n,--x);
}
int main()
{
printf("%d\n",gcd(18,12,min(18,12)));
return 0;
}