题目:楼梯有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