采用递归实现:
#include <iostream>
#include <algorithm>
using namespace std;
int gcd(int a,int b){
if(b==0)
return a;
else
return gcd(b,a%b);
}
int main(){
cout<<gcd(4,2)<<endl;
cout<<gcd(2,4)<<endl;
return 0;
}
采用循环实现:
#include <iostream>
#include <algorithm>
using namespace std;
int gcd(int a,int b){
int m=a,n=b,r;
if(m<n){
int temp = m;
m = n;
n = temp;
}
r = m % n;
while(r){
m = n;
n = r;
r = m % n;
}
return n;
}
int main(){
cout<<gcd(4,2)<<endl;
cout<<gcd(2,4)<<endl;
return 0;
}