0

このクラスには、2 つの数値をパラメーターとして取り、それらを分数に変換する Rational コンストラクターがあります。プライベート メソッド gcd を使用して、分数を可能な限り低い項に減らします。

Rational コンストラクターが dem の計算時に Math.abs(y) を使用する理由と、if 条件の背後にある目的が理解できない部分。したがって、if 条件を読み取る場合、たとえば -4 のように分母が 0 未満の場合、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

1 に答える 1