gpt4 book ai didi

java - 如何让我的程序返回 -1/4 而不是 1/-4?

转载 作者:行者123 更新时间:2023-12-02 07:14:05 25 4
gpt4 key购买 nike

\救命!我的作业要在今晚中午 12 点之前交,但我似乎无法让我的程序输出负数 -1/4 而不是 1/-4!这让我很沮丧,因为事实是,我不能在我的数字前面放一个“-”(正如你在下面的程序中看到的那样,我已经注释掉了)。我尝试将分数变为 -1/4 (仅使用该分数作为示例)位于“public RationalNumber(int...) { 行:你看到我写 *-1 的部分了吗?我在哪里导致我得到 1/-4 的那一步出了问题?这让我很沮丧...提前致谢。

private int n;
private int d;
public RationalNumber(int numerator, int denominator) {
if (denominator == 0) {
throw new IllegalArgumentException();
}
if (denominator < 0) {
denominator = denominator * -1;
numerator = numerator * -1;
}
n = numerator;
d = denominator;
simplified();
}

public RationalNumber add(RationalNumber rn) {
int comDenom = d * rn.getDenominator();
int num1 = n * rn.d;
int num2 = rn.n * d;
d = comDenom;
return new RationalNumber(num1 + num2, d);
}

public RationalNumber subtract(RationalNumber rn) {
int num1 = n * rn.d;
int num2 = rn.n * d;
return new RationalNumber(num1 - num2, d);
}

public RationalNumber multiply(RationalNumber rn) {
int numer = n * rn.n;
int denom = d * rn.d;
return new RationalNumber(numer, denom);
}

public RationalNumber divide(RationalNumber rn) {
int numer = n * rn.d;
int denom = d * rn.n;
return new RationalNumber(numer, denom);
}

public RationalNumber() {
n = 0;
d = 1;
}

public boolean equals(RationalNumber o) {
return (n == o.getNumerator() && d == o.getDenominator());
}

public int getDenominator() {
return d;
}

public int getNumerator() {
return n;
}

public String toString() { //Prints everything here.
if (d == 1) {
return "" + n;
}
if (n == 0) {
return "0";
}
/*if ((n < 0) || (d < 0)) {
return "-" + Math.abs(n) + "/" + Math.abs(d);
}*/
return n + "/" + d;
}

private void simplified() {
if (n != 0) {
int cDenom = gcd(n, d);
n = n / cDenom;
d = d / cDenom;
}
}

private int gcd(int gcdNum1, int gcdNum2) {
while (gcdNum1 != 0 && gcdNum2 != 0) {
int tempNum = gcdNum2;
gcdNum2 = gcdNum1 % gcdNum2;
gcdNum1 = tempNum;
}
return gcdNum1 + gcdNum2;
}

最佳答案

因为这是家庭作业,所以自己发现并解决问题符合您的最大利益。

以下是一些帮助您入门的提示:

  • 找出构造函数调用 simplified() 之前和之后 nd 的值。

  • 您可以使用 Java IDE 的调试器或使用跟踪打印来完成此操作;即调用 System.out.println(...)

关于java - 如何让我的程序返回 -1/4 而不是 1/-4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15171389/

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