欧几里得

版权声明:低调地前行,越努力越幸运! https://blog.csdn.net/SSYITwin/article/details/79946733

什么是欧几里得算法:欧几里得算法就是辗转相除法,用来求得最大公约数。

1.1模板一:

    int gcd(int a,int b)
{
//return b==0?a:gcd(b,a%b);
return b?gcd(b,a%b):a;

}

1.2完整代码:

     #include<algorithm> 
#include<iostream>
#include<cstdio> 
using namespace std;
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int main()
{
int a,b;
cin>>a>>b;
cout<<gcd(a,b)<<endl;
return 0;

}

2.1 模板二:

      int gcd(int a,int b)
{
while(b!=0)
{
int r=b;
b=a%b;
a=r;
}
return a;

}

2.2 代码二:

    #include<algorithm> 
#include<iostream>
#include<cstdio> 
using namespace std;
int gcd(int a,int b)
{
while(b!=0)
{
int r=b;
b=a%b;
a=r;
}
return a;
}
int main()
{
int a,b;
cin>>a>>b;
cout<<gcd(a,b)<<endl;
return 0;

}

3.1模板三:(递归)

    int gcd(int a,int b)
{
if(b==0)
 return a;
else
 return gcd(b,a%b);
 

}

3.2代码:

   #include<algorithm> 
#include<iostream>
#include<cstdio> 
using namespace std;
int gcd(int a,int b)
{
if(b==0)
 return a;
else
 return gcd(b,a%b);
 
}
int main()
{
int a,b;
cin>>a>>b;
cout<<gcd(a,b)<<endl;
return 0;
}

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页