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