ログイン
編集不可のページディスカッション情報添付ファイル
iz/競技プログラミング/Project Euler 025 1000-digit Fibonacci number

MMA

http://projecteuler.net/problem=25

フィボナッチ数列で1000桁以上の最小の数を求める。

fibがn = 10000でスタックオーバーフローした。n = 5000にしてみたら桁数1045だったのでその辺を適当に探索。

   1 #!/usr/bin/env ruby
   2 
   3 @cache = {}
   4 def fib(n)
   5   return 1 if n == 1 || n == 2
   6   return @cache[n] if @cache[n]
   7   return @cache[n] = fib(n-1) + fib(n-2)
   8 end
   9 
  10 4000.upto(5000) do |i|
  11   if fib(i).to_s.length >= 1000
  12     p i
  13     break
  14   end
  15 end

iz/競技プログラミング/Project Euler 025 1000-digit Fibonacci number (最終更新日時 2012-12-22 01:55:43 更新者 iz)