horiuchi #4792(2007/12/13 04:08 GMT) [ Java ] Rating0/0=0.00
既に #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)); } }
Rating0/0=0.00-0+
[ reply ]
horiuchi
#4792()
[
Java
]
Rating0/0=0.00
既に #4790でも出てますが、Javaだと任意精度の整数値に対して使えるgcdがあるのでそれを使えます。
#4790 と同じなのもアレなので、フィボナッチ数列の計算処理もしてみました。
Rating0/0=0.00-0+
[ reply ]