#include <iostream>
using namespace std;
bool IsEven(int z)
{
if (z % 2 == 1)
{
return false;
}
else
{
return true;
}
}
//来自编程之美
int gcd(int x, int y)
{
if(x < y)
{
return gcd(y, x);
}
if(y ==0)
{
return x;
}
else
{
if (IsEven(x))
{
if (IsEven(y))
{
return (gcd(x>>1, y>>1)<<1);
}
else
{
return gcd(x>>1,y);
}
}
else
{
if (IsEven(y))
{
return gcd(x, y>>1);
}
else
{
return gcd(y, x-y);
}
}
}
}
int main()
{
int x = 42;
int y = 30;
int x_y = gcd(x,y);
cout<<x_y<<endl;
system("pause");
return 0;
}
最大公约数-减法和除法的合体,更快啊!
最新推荐文章于 2019-05-24 11:01:06 发布