輾轉相減/除法求最大公約數

第一次算法課上機老師讓我們用兩種方法求最大公約數:

輾轉相減法:

#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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章