美文网首页
求Fibonacci的几种方法

求Fibonacci的几种方法

作者: kamionayuki | 来源:发表于2016-03-19 23:32 被阅读27次
require 'matrix'
def fib_matrix(n)
  matrix = Matrix[[1,1],[1,0]]
  (matrix ** n)[1,0].to_i
end

def fib_loop(n)
  a, b = 0, 1
  if n > 1
    (n-1).times do
      a, b = b, a + b
    end
    return b
  else
    (0-n).times do
      a, b = b - a, a
    end
    return a
  end
end

def fib_recursion(n)
  return 0 if n == 0
  return 1 if n == 1
  if n > 1
    fib_recursion(n-2) + fib_recursion(n-1)
  else
    fib_recursion(n+2) - fib_recursion(n+1)
  end
end

def fib(n)
    re = 0
    a,b = 0,1
    for i in 2..n
       re = a + b
       a,b = b,re 
    end
    re
end

相关文章

网友评论

      本文标题:求Fibonacci的几种方法

      本文链接:https://www.haomeiwen.com/subject/snghlttx.html