發新話題

[問題] 請問要如何修改呢?

請問要如何修改呢?

有一個程式,應該是很簡單,
可是因為我還只是個初學者,
不知道該如何修改,
我只將無法正常跑的程式改時程可跑,
但也不知道對不對,
而且改了好久還是不知道該怎麼改...
所以請大大們幫忙!

-------------------------------------------------------------------
要將程式改為複雜一點,
這個是加法,
要改成使用LCM和gcd的方法式
且要把減、乘、除都寫出來

我有試過好像可以用if 之類的東西,
可是不知如何使用


以下是給的提示:

    a      c       a*gcd (b,d) + b*gcd (b,d)
    ─ +  ─  =  ────────────────
    b      d              LCM  (b,d)


  LCM(b,d) = b*d / gcd (b,d)

  gcd(12,32)= gcd(32%12,12) = gcd(8,12) =  gcd(12%8,8) = gcd (4,8) = gcd (8%4,4)



以下是程式:

public class Rational{
  int a_enum;  //因為enum 是Java中的保留字,所以不能當作宣告變數,因此改為 a_enum
  int denom;
  Rational(){
   this(0,1);
  }
  Rational(int a_enum,int denom){
   this.a_enum=a_enum;
   this.denom=denom;  
  }
  void setA_enum(int a_enum){
   this.a_enum=a_enum;
  }
  void setDenom(int denom){
   this.denom=denom;
  }
  int getA_enum(){
   return a_enum;
  }
  int getDenom(){
   return denom;
  }
   
  public String toString(){  //加上public, 可供其他類別使用
   String str;
   str = a_enum+"/"+denom;
   return str;
  }
  

Rational add(Rational adder){
   Rational result=new Rational();
   result.setDenom(this.denom*adder.denom);
   result.setA_enum(this.denom * adder.a_enum + this.a_enum * adder.denom);
      return result;
  }
  
}  //End of Rational

public class TestRational{
  public static void main(String[] args){
   
   Rational obj1=new Rational();
   Rational obj2=new Rational(3,4);
   
   obj1.setA_enum(4);
   obj2.setDenom(5);
   
   System.out.println(obj1.add(obj2));
   
  } //End of main method
} //End of TestRational


[ 本帖最後由 hane1129 於 2010-2-1 19:31 編輯 ]

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。