2301_80147487 2023-10-22 14:57 采纳率: 100%
浏览 7
已结题

求最大公约数问题,有劳大家

rt,我这个代码中问ai说先交换了m与n的值,再用m除以n,可是我的目的是m先除以n,得到了余数,再交换值啊,代码哪里出错了?(按着网上的思路写的) 想了好久没弄明白 麻烦大家了

img

img

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-22 16:34
    关注

    【以下回答由 GPT 生成】

    问题出错的地方是交换 m 和 n 的值的方式。你使用了一个额外的变量temp来交换值,但这样并不能达到你想要的效果。

    正确的方式是使用异或运算来交换值。代码如下所示:

    // 这是修改后的代码:
    // 输入参数:整数 m 和 n
    int findGCD(int m, int n) {
        // 先交换 m 和 n 的值
        m = m ^ n;
        n = m ^ n;
        m = m ^ n;
    
        // 使用辗转相除法求最大公约数
        while (n != 0) {
            int remainder = m % n;
            m = n;
            n = remainder;
        }
    
        return m;  // 返回最大公约数
    }
    

    通过使用异或运算,可以避免使用额外的变量来进行交换。这样交换后,接下来的计算就可以得到正确结果了。

    希望能帮到你,如果还有其他问题,请随时提问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 创建了问题 10月22日

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价