BigInteger の操作に問題があります。add
Rational クラスのメソッドに問題があります。コンストラクターでは、メソッドを使用して、パラメーターのデータ型をインスタンス変数のデータRational(int x, int y)
型に変換しようとしています。int
BigInteger
toString(int n)
Rational(int x, int y)
コンストラクター内で正しく変換していますか?- メソッドの書き方
add
では、n.num と n.den のすべてでエラーが発生します。なぜそのエラーが発生するのかわかりません。add
BigInteger クラス のメソッドを正しく使用していませんか? http://docs.oracle.com/javase/1.4.2/docs/api/java/math/BigInteger.html
1 つのクラスに次があるとします。
Rational a = new Rational(1,2);
Rational b = new Rational(1,3);
Rational c = new Rational(1,6);
Rational sum = a.add(b).add(c);
println(sum);
Rational クラスには以下が含まれます
import acm.program.*;
import java.math.*;
public class Rational{
public Rational(int x, int y) {
num = new BigInteger(toString(x));
den = new BigInteger(toString(y));
}
public toString(int n) {
return toString(n);
}
public BigInteger add(BigInteger n) {
return new BigInteger(this.num * n.den + n.num * this.den, this.den * n.den)
}
/* private instance variables */
private BigInteger num;
private BigInteger den;
}