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の使い方間違ってる?元々こんなに面倒なもの?