第一次算法課上機老師讓我們用兩種方法求最大公約數:
輾轉相減法:
#include<iostream>
#include<algorithm>
using namespace std;
//如果這兩個數相等則是解,否則每次取相減後3個數中最小的兩個
int gcd(int a,int b){
if(a==b)return a;
return a>b?gcd(a-b,b):gcd(b-a,a);
}
int main(){
int a,b;
cin>>a>>b;
cout<<gcd(a,b)<<"\n";
return 0;
}
輾轉相除法:
#include<iostream>
#include<algorithm>
using namespace std;
//輾轉相除法就不用多說了吧
int gcd(int a,int b){return a%b==0?b:gcd(b,a%b);}
int main(){
int a,b;
cin>>a>>b;
cout<<gcd(a,b)<<"\n";
return 0;
}