MALOUDA-PSA 2024-04-27 09:29 采纳率: 90.9%
浏览 1
已结题

rust整除取余数 的问题

 println!("{}",gcd(33, 3));
}



fn gcd(mut a: u64, mut b: u64) -> u64 {
    while a != 0 {
        if a < b {
            let c = a;
            a = b;
            b = c;
        }
        a = a % b;
    }
    b
}

如果是,gcd(33, 3), 结果不是0,而是3, 这就不懂了

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-27 09:29
    关注

    引自免费微信小程序:皆我百晓生

    在您提供的代码中,gcd 函数是用于计算两个整数的最大公约数(Greatest Common Divisor)的欧几里得算法实现。当调用 gcd(33, 3) 时,结果确实是 3,这是正确的。

    最大公约数定义为能同时整除两个或两个以上整数的正整数中最大的一个。在这里,33 和 3 都可以被 3 整除,所以它们的最大公约数就是 3。

    如果您想要计算的是整除后的余数,而不是最大公约数,您可以使用 % 操作符,就像这样:

    fn main() {
        println!("Remainder of 33 divided by 3 is: {}", 33 % 3);
    }
    
    // 输出 "Remainder of 33 divided by 3 is: 0"
    

    这段代码会输出 0,因为 33 可以被 3 完全整除,没有余数。

    如果您有其他关于 Rust 编程语言或者其他数学相关的问题,欢迎继续提问。

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

报告相同问题?

问题事件

  • 系统已结题 5月5日
  • 已采纳回答 4月27日
  • 创建了问题 4月27日

悬赏问题

  • ¥15 已知许多点位,想通过高斯分布来随机选择固定数量的点位怎么改
  • ¥15 怎么生成确定数目的泊松点过程
  • ¥15 layui数据表格多次重载的数据覆盖问题
  • ¥15 python点云生成mesh精度不够怎么办
  • ¥15 QT C++ 鼠标键盘通信
  • ¥15 改进Yolov8时添加的注意力模块在task.py里检测不到
  • ¥50 高维数据处理方法求指导
  • ¥100 数字取证课程 关于FAT文件系统的操作
  • ¥15 如何使用js实现打印时每页设置统一的标题
  • ¥15 安装TIA PortalV15.1报错