第一次算法课上机老师让我们用两种方法求最大公约数:
辗转相减法:
#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;
}
本文介绍了两种求解最大公约数(GCD)的方法:辗转相减法和辗转相除法,并给出了C++实现代码。
780

被折叠的 条评论
为什么被折叠?



