辗转相除法又称欧几里得算法被用来求两个数的最大公因数
其方法是将要求的两个数中的较大数作为被除数,较小数作为除数,然后相除,如果余数不为零,则把除数作为新的被除数,余数作为新的除数,知道余数为零,此时的除数就是我们要求的最大公因数
具体的代码实现如下
int main()
{
int m;
int n;
printf("请输入两个数:>");
scanf("%d%d", &m, &n);
int i=0;
for (; ;)
{
i = m % n;
if (i == 0)
{
printf("%d\n", n);
break;
}
else
{
m = n;
n = i;
}
}
return 0;
}
这是我写的,好像一般
int main()
{
int m = 0;
int n = 0;
int r = 0;
scanf("%d%d", &m, &n);
while ( r=m%n)
{
m = n;
n = r;
}
printf("%d\n", n);
return 0;
}
这是老师写的,while循环的运用确实巧妙,在精简程度方面优于第一种写法