题目:楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序列出每一种走法。
要求是使用递归和迭代两种不同的方法来实现。对于我这个算法又渣也没接触过LUA的人来说,真是有点脑子不够用了!!
‘
捣鼓了一整天,了解LUA语法,各种google百度,暂且只能弄出递归解法,至于迭代,还得好好理解理解!
--递归 function walkStairs(remainingSteps,currentSteps) if remainingSteps<=2 then printWalkWays(remainingSteps,currentSteps) else for step=1,2 do walkStairs(remainingSteps-step,currentSteps .." " ..step) end end end function printWalkWays(remainingSteps,currentSteps) if 1==remainingSteps then print(currentSteps .." 1") elseif 2==remainingSteps then print(currentSteps .." 1 1") print(currentSteps .." 2") else print(currentSteps) end end print("enter a number:") n=io.read("*number") print(n .."层楼梯的走法有以下几种:") io.write(walkStairs(n," "))
再改进了下,可以由用户输入数字,确定总共有几阶楼梯
原文地址:http://blog.csdn.net/goldya/article/details/32711715