2011-05-01から1ヶ月間の記事一覧

再帰しない

配列いらない & メモに近いよね、とツッコミがあったので... def fib(n) return 0 if n == 0 p,t = 0,1 (n-1).times{p,t = t,t+p} t end なんだかな... ちょっとズルしてみた def fib(n) p,t = 1,0 n.times{p,t = t,t+p} t end

再帰

再帰を使わないでフィボナッチ数 hfib = Hash.new do |h,k| if k < 2 h[k] = k else h[k] = h[k-1]+h[k-2] end end 15.times{|n| p [n,hfib[n]]} は再帰するので def fib(n) s = [0, 1] while s.size <= n s.push(s[-1]+s[-2]) end s[n] end 15.times{|n| p …