作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这个类中,有一个 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/
在 JavaScript 中,有没有办法将十进制数(例如 0.0002)转换为以字符串表示的分数(例如“2/10000”) ? 如果为此目的编写了名为 decimalToFraction 的函数,则
我无法做到这一点,我不知道为什么?当我输入: x = symbols('x') exp = Rational((x+3)**6, 6) 我收到一个 Type_Error。 这源于尝试整合 (x +
我是一名优秀的程序员,十分优秀!