Fibonacci的尾递归实现

来源:互联网 发布:火绒安全软件下载 编辑:程序博客网 时间:2024/06/05 18:27

前段日子面试,碰到的lua语言问题,大致是说对于一个Fibonacci数列,要求给定一个正整数n,就生成从0开始的n个Fibonacci数存入一个表中,然后打印出来,要求使用尾递归。

个人对lua也算是刚入手阶段,折腾几下总算做了出来,记下来免得过些日子又忘了……


local function fibonacci(n)  local t = {}  if n <= 0 then    return t  end  local function fib(t, num1, num2)    len = #t    table.insert(t, len + 1, num1 + num2)    if #t == n then      return t    else      return fib(t, num2, num1 + num2)    end  end  t = fib(t, -1, 1)  return tendlocal function main()  local fibt = fibonacci(50)  for _, v in ipairs(fibt) do    print(v)  endendmain()


0 0
原创粉丝点击