m0_58179402 2021-05-25 10:38 采纳率: 0%
浏览 89

c语言辗转相除法求最大公约数

不懂下面这个程序还有下面为什么公约数会变化 1.r=a%b; a=b; b=r; 最大公约数是a 2.a=b; b=r; r=a%b; 最大公约数是b

  • 写回答

3条回答 默认 最新

  • CSDN专家-黄老师 2021-05-25 10:39
    关注
    #include <stdio.h>
     
    int main()
    {
        int a,b,r;
        printf("请输入两个正整数:\n");
        scanf("%d %d",&a,&b);
        //如果a<b,交换a和b的值
        if(a<b)
        {
            r=a;
            a=b;
            b=r;
        }
     
        //辗转相除法,因为r的初始值不为0,所以while语句至少会执行一次
        //直至余数为零,跳出循环
        while(r!=0)
        {
            r=a%b;
            a=b;
            b=r;
        }
     
        //输出最大公约数
        printf("最大公约数为:%d\n",a);
     
        return 0;
    }
     

    参考一下,如有帮助,望采纳

    评论

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题