Greatest_Common_Divisor(GCD)
最大公约数
给出两个数字A和B,求两者的最大公约数。
假设A是比较大的数字,先看B是否能整除A。
若果能整除:
直接输出B。
若果不能整除:
让A等于原来的B,新的B等于原来的A模上原来的B,此时再看B是否能整除A。
重复上面的步骤即可。
代码:
1 #include <iostream> 2 #define N 24 3 #define M 36 4 5 using namespace std; 6 7 int GCD(int a, int b) 8 { 9 if(a < b) //把a和b中较大的数字放到a中 10 { 11 a = a + b; 12 b = a - b; 13 a = a - b; 14 } 15 if (b == 0) //找到两者的最大公约数,直到返回a 16 { 17 // cout << a << endl; //打印两者的最大公约数a 18 return a; 19 } 20 return GCD(b, a % b); //否则,继续往下找 21 } 22 23 int main() 24 { 25 GCD(N, M); 26 return 0; 27 }