Project Euler Problem1〜30
小手調べに1〜30まで飛ばし飛ばしに。
飛ばしたの:17,19,23,28,29
要するにまともな数学的考察が必要ないやつだけ(ry
BigIntegerが必要な13,16,20,25はJavaを使ったのだけど、
慣れてない所為でものすごい手間取った。
何でこんなにBigInteger使いにくいの……
例えば、初めて1000桁になるフィボナッチ数は第何項かを求めよという問題。
class Prob26{ void run(){ BigInteger prev = BigInteger.ONE; BigInteger pprev = BigInteger.ONE; BigInteger cur = null; BigInteger d1000 = BigInteger.ONE; for(int i=0;i<999;i++)d1000 = d1000.multiply(BigInteger.TEN); int i = 3; for(;;i++){ cur = prev.add(pprev); pprev = prev; prev = cur; if(cur.compareTo(d1000)==1)break; } System.out.println(i); } }
C++にBigIntegerクラスあったら3行で書けるようなのがこんな風になってしまった。
どこかBigIntegerの使い方間違ってる?元々こんなに面倒なもの?