topcoder 問題をちょっと解いてみようかな。SRM 622 DIV2 FibonacciDiv2
public class FibonacciDiv2 {
public int find(int N) {
if (N == 1) {
return 0;
}
int a1 = 1, a2 = 1, a3= 1;
int min = Integer.MAX_VALUE;
while (true) {
a3 = a1 + a2;
a1 = a2;
a2 = a3;
min = Math.min(min, Math.abs(a3 - N));
if (a3 > N) {
break;
}
}
return min;
}
}