Here are 3 different code for GCD, But the main Idea is always same-
Here is another short version of gcd using ternary operators:
//iterative gcd
int gcd ( int a, int b )
{
int c;
while ( b != 0 ) {
c = b; b = a%b; a = c;
}
return b;
}
//bitwise gcd
int gcd(int a, int b)
{
//actually this code is same as the previous
while(b)
b ^= a ^= b ^= a %= b; //b^=a^=b^=a means swap(a,b)
return a;
}
//recursive gcd
int g_c_d(int a,int b)
{
if(b==0)
return a;
else
return g_c_d(b,a%b);
}
Here is another short version of gcd using ternary operators:
int gcd ( int a, int b ) {
return b ? gcd ( b, a % b ) : a ;
}
No comments:
Post a Comment