http://projecteuler.net/problem=25 フィボナッチ数列で1000桁以上の最小の数を求める。 fibがn = 10000でスタックオーバーフローした。n = 5000にしてみたら桁数1045だったのでその辺を適当に探索。 {{{#!highlight ruby #!/usr/bin/env ruby @cache = {} def fib(n) return 1 if n == 1 || n == 2 return @cache[n] if @cache[n] return @cache[n] = fib(n-1) + fib(n-2) end 4000.upto(5000) do |i| if fib(i).to_s.length >= 1000 p i break end end }}}