─ 問題 ─ n番目のフィボナッチ数を返すメソッドfibを定義しなさい。但し、メソッドの実装は一文字とする。 解答例は下。 ─ 解答例 ─ def fib(n, m=n==0||n==1 ? n : fib(n-1)+fib(n-2)) m end (1..20).map { |n| fib n } # => [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765] def fib(n, m={0=>0,1=>1}.tap{|s|s.default_proc=->h,k{h[k]=h[k-1]+h[k-2]}}[n]) m end fib(1000) # => 434665576869374564356885276750406258025646605173717804024