最大公約数(除算禁止)
Posted feedbacks - Java
既に #4790でも出てますが、Javaだと任意精度の整数値に対して使えるgcdがあるのでそれを使えます。
#4790 と同じなのもアレなので、フィボナッチ数列の計算処理もしてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import java.math.BigInteger;
import java.util.HashMap;
import java.util.Map;
public class Sample106 {
private final Map<Integer, BigInteger> fibMemo_ = new HashMap<Integer, BigInteger>();
public BigInteger getFibValue(int index) {
if (index == 1 || index == 2) return BigInteger.ONE;
BigInteger fib = fibMemo_.get(index);
if (fib == null) {
fib = getFibValue(index - 2).add(getFibValue(index - 1));
fibMemo_.put(index, fib);
}
return fib;
}
public static void main(String[] args) {
Sample106 instance = new Sample106();
BigInteger fib1999 = instance.getFibValue(1999);
BigInteger fib2000 = instance.getFibValue(2000);
System.out.println(fib2000.gcd(fib1999));
}
}
|




186 #4590() Rating0/8=0.00
あなたが使っている言語で除算と剰余が使えなくなりました。
以下の条件のもと最大公約数を求めるプログラムを書いてください。
条件
1 reply [ reply ]