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 }
View Code

 

posted on 2014-12-27 17:12  M.D.LUFFI  阅读(220)  评论(0编辑  收藏  举报

导航