gpt4 book ai didi

java - 欧几里得算法不正确的结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:57 25 4
gpt4 key购买 nike

我正在尝试编写 Euclid 算法的 Java 实现:我的方法主体如下所示:

    while(a%b != 0) {
int newA = b * ((int) Math.floor(a/b));
int newB = a - newA;

a = newA;
b = newB;
}
return a;

但是,我不断得到不正确的结果......我想我有一个逻辑错误,但真的不明白它在哪里:\

有什么想法吗?

最佳答案

欧几里得算法如下:

  1. 如果 a < b, swap(a, b);
  2. [a, b] = [b, a % b], 直到 a % b == 0;
  3. 返回 b.

您的代码有多个问题,但比较突出的一个是您返回的是a,而不是b

另一件事:不要试图重新发明 %(余数)运算符。

关于java - 欧几里得算法不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16567505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com