欧几里得算法


 1   #include <iostream>
 2  
 3   using namespace std;
 4   
 5   //递归方法
 6   int RGcd(int m, int n)
 7   {
 8       if(n>m)
 9           swap(m,n);
10      if(n==0)
11          return m;
12      else
13          RGcd(n,m%n);
14  }
15  //迭代方法
16  int RGcd(int m, int n)
17  {
18      if(n>m)
19          swap(m,n);
20      while(n>0)
21      {
22          int c = m%n;
23          m = n;
24          n = c;
25      }
26      return m;
27  }
28  int main()
29  {
30  
31      int k = RGcd(55,22);
32      cout << k <<endl;
33      return 0;
34  }
35 
36  
View Code

 

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 //递归方法
 6 int RGcd(int m, int n)
 7 {
 8     if(n>m)
 9         swap(m,n);
10     if(n==0)
11         return m;
12     else
13         RGcd(n,m%n);
14 }
15 //迭代方法
16 int RGcd(int m, int n)
17 {
18     if(n>m)
19         swap(m,n);
20     while(n>0)
21     {
22         int c = m%n;
23         m = n;
24         n = c;
25     }
26     return m;
27 }
28 int main()
29 {
31     int k = RGcd(55,22);
32     cout << k <<endl;
33     return 0;
34 }

 

posted @ 2013-08-23 17:48  倚天照花海  阅读(265)  评论(0)    收藏  举报