2301_80745055 2023-11-08 15:33 采纳率: 50%
浏览 15
已结题

把辗转相除法写成递归函数,并由此计算两个整数的最大公约数

请求解答把辗转相除法写成递归函数,并由此计算两个整数的最大公约数

  • 写回答

3条回答 默认 最新

  • threenewbee 2023-11-08 15:35
    关注
    #include<stdio.h>
    int Quto(int x, int y)
    {
        int temp = 0;
        if (x > y)先判断x和y哪个大 哪个小
        {
            temp = x % y;//用大数除以小数得到第一个余数
            if (temp!= 0)//判断第一个余数是否为零,是的话直接返回y,不是的话返回Quto()函数,继续计算
            {
                return Quto(y, temp);
            }
            else
            {
                return y;
            }
        
        }
        else //这里是x<y的情况
        {
            temp = y % x;
            if (temp != 0)
            {
                return Quto(x, temp);
            }
            else
            {
                return x;
            }
        }
     
    }
    int main()
    {
        int x = 0;
        int y = 0;
        int q = 0;
        printf("输入你想求最大公约数的两个数\n");
        while (scanf_s("%d%d", &x, &y) != EOF)
        {
            int q = Quto(x, y);
            printf("他们的最大公约数为%d\n", q);
            getchar();
            
     
        }
        return 0;
    }
    
    

    https://blog.csdn.net/2302_76267737/article/details/131961789

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月8日