public class Rational {
private long num=0; //分子
private long den=1; //分母
/************Begin*****************/
long i;
public Rational(long num,long den){
this.num=num;
this.den=den;
}
public long getnum(){
return num;
}
public long getden(){
return den;
}
public Rational add(Rational r){
long den1=this.den*(r.getden());
long num1=this.num*(r.getden())+(r.getnum())*this.den;
/*simplify(num1,den1);*/
if(num1>=den1){
for(i=num1;;i--)
if(num1%i==0&&den1%i==0) break;
}
else{
for(i=den1;;i--)
if(num1%i==0&&den1%i==0) break;
}
num1=(num1/i);den1=(den1/i);
return new Rational(num1,den1);
}
public Rational substract(Rational r){
long den1=this.den*(r.getden());
long num1=this.num*(r.getden())-(r.getnum())*this.den;
/*simplify(num1,den1);*/
if(num1>=den1){
for(i=num1;;i--)
if(num1%i==0&&den1%i==0) break;
}
else{
for(i=den1;;i--)
if(num1%i==0&&den1%i==0) break;
}
num1=(num1/i);den1=(den1/i);
return new Rational(num1,den1);
}
public Rational multiply(Rational r){
long den1=this.den*(r.getden());
long num1=this.num*(r.getnum());
/*simplify(num1,den1);*/
if(num1>=den1){
for(i=num1;;i--)
if(num1%i==0&&den1%i==0) break;
}
else{
for(i=den1;;i--)
if(num1%i==0&&den1%i==0) break;
}
num1=(num1/i);den1=(den1/i);
return new Rational(num1,den1);
}
public Rational divide(Rational r){
long den1=this.den*(r.getnum());
long num1=this.num*(r.getden());
/*simplify(num1,den1);*/
if(num1>=den1){
for(i=num1;;i--)
if(num1%i==0&&den1%i==0) break;
}
else{
for(i=den1;;i--)
if(num1%i==0&&den1%i==0) break;
}
num1=(num1/i);den1=(den1/i);
return new Rational(num1,den1);
}
public String toString(){
return num+"/"+den;
}
}
01-30
260
05-24
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交