关闭

Fibonacci的尾递归实现

标签: luaFibonacci尾递归
79人阅读 评论(0) 收藏 举报
分类:

前段日子面试,碰到的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 t
end

local function main()
  local fibt = fibonacci(50)
  for _, v in ipairs(fibt) do
    print(v)
  end
end
main()


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1300次
    • 积分:23
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档
    阅读排行
    评论排行