方法:辗转相除法,首先判断两个数的大小,用大数除以小数,如果大数能够整除小数,那么小数就是最大公约数,如果不能整除,将小数赋给大数,将余数赋给小数,再将大数和小数求余,知道可以整除为止。
注意:while后的括号内,不能写max%min!=0虽然和r!=0表达的一个意思,但是会使循环少执行一次,导致求得的数值出现错误。
代码
#include
using namespace std;
int main()
{
int m,n,min,max,r;
cin >>m>>n;
if(m>n)
{
max=m;
min=n;
}
else
{
max=n;
min=m;
}
while(r!=0)
{
r=max%min;
max=min;
min=r;
}
cout << “最大公约数为” <<max<<endl; return 0;
}
计算两个数的最大公约数
最新推荐文章于 2022-10-19 23:48:57 发布