永发信息网

谁帮我解释下这个算法

答案:2  悬赏:80  手机版
解决时间 2021-07-17 00:37
  • 提问者网友:两耳就是菩提
  • 2021-07-16 04:02

求最大公约数的?

#include <stdio.h>
void main()
{
int a,b,r;
printf("请输入a和b:");
scanf("%d%d",&a,&b);
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
printf("%d",r);
}

最佳答案
  • 五星知识达人网友:鸽屿
  • 2021-07-16 05:21

这个是辗转相除法


可以参考baidu百科的解释: http://baike.baidu.com/view/255668.htm?fr=ala0

全部回答
  • 1楼网友:夜风逐马
  • 2021-07-16 06:20

while(b!=0) { r=a%b; a=b; b=r; } 举个例子说明:

如:a,b,输入的是6和8 也就是a=6,b=8;

r=6%8=6; a=b=8; b=r=6; b不为0再 循环:

r=8%6=2; a=b=6; b=r=2 b不为0再 循环:

r=6%2=0; a=b=2;b=r=0; b=0,循环结束 ,此时的r的值就是两个数的最大公约数

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯