TopCoder SRM622: FibonacciDiv2
ある程度の数までフィボナッチ数を求めてから、差分の最小値を求める。
public class FibonacciDiv2 { public IEnumerable<int> GetFibonacci() { List<int> f = new List<int>(); f.Add(0); f.Add(1); while (true) { var x = f[f.Count - 2] + f[f.Count - 1]; if (x >= 1000000000) break; f.Add(x); } return f; } public int find(int N) { return GetFibonacci().Select(x => Math.Abs(N - x)).Min(); } }