【题目要求】
构造函数,输入2个数,求它们的最大公约数
【题目解析】
方法一:枚举法求最大公约数
#include<iostream>
using namespace std;
int gcd(int a,int b) //最大公约数函数
{
if(a<b) //从二者间较小的数开始判断并减小,直至找到可以被大数整除的数
{
for(int i=a;i>0;i--)
{
if(b%i==0) return i;
}
}
else if(a>b)
{
for(int i=b;i>0;i--)
{
if(a%i==0) return i;
}
}
else return a; //相等即为自身
}
int main()
{
int m,n;
cin>>m>>n;
cout<<gcd(m,n)<<endl;
return 0;
}
方法二:欧几里得算法求最大公约数
#include<iostream>
using namespace std;
int gcd(int a,int b) //最大公约数函数
{
int i; //最大公约数
while(b!=0)
{
i=a%b;
a=b;
b=i;
}
return a;
}
int main()
{
int m,n;
cin>>m>>n;
cout<<gcd(m,n)<<endl;
return 0;
}