首页 > 代码库 > 初学LUA—实现上楼梯算法

初学LUA—实现上楼梯算法


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


再改进了下,可以由用户输入数字,确定总共有几阶楼梯