欧几里得算法
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
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 }
浙公网安备 33010602011771号