gpt4 book ai didi

java - 有理数方法 - 分子和分母

转载 作者:行者123 更新时间:2023-12-01 23:42:29 24 4
gpt4 key购买 nike

在这个类中,有一个 Rational 构造函数,它将两个数字作为参数并将它们转换为分数。它使用私有(private)方法 gcd 将分数简化为尽可能最低的项。

我不明白为什么 Rational 构造函数在计算 dem 时采用 Math.abs(y) 以及 if 条件背后的目的。因此,当读取 if 条件时,该方法表示如果分母小于 0(例如 -4),den = -4 还是 num 会更改为正 4?例如,如果 Rational 参数有 (-4, -8),那么 Rational 的构造函数值是 1/2 还是 -1/-2?

public class Rational { 

public Rational (int x, int y){
int g = gcd(Math.abs(x), Math.abs(y));
num = x / g;
dem = Math.abs(y) / g;
if ( y < 0 ) num = -num;
}


private int gcd(int x, int y){
int r = x % y;
while (r != 0){
x = y;
y = r;
r = x % y;
}
return y;
}

private int num;
private int dem;
}

最佳答案

该类的编写者希望分子带有符号。分母始终为正。因此,如果输入确实是 6/-8,则结果将为 -3/4。您的另一个示例也是正确的:-6/-8 构造 3/4。

关于java - 有理数方法 - 分子和分母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17687593/

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