0
在這個類中有一個Rational構造函數,它將兩個數字作爲參數並將它們轉換爲分數。它使用私有方法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;
}
好的非常感謝。這對我來說有點困惑。 –
如果輸入是(-4,-8),那麼GCD是4,因此num被創建爲-4/4 = -1,den作爲abs(-8)/ 4 = 8/4 = 2,但是之後由於y < 0號變爲-num導致1/2,這實際上等於-4/-8。 – hivert
非常感謝。我現在明白了。得到我的部分是if語句處理分母的條件,但if語句的主體是處理分子。那部分讓我混淆了。 –