Lua上楼梯问题

--01
--楼梯有n阶台阶 上楼可以一步上一节 也可以一步上两节  多少种走法
--递归求解

function Way(n)
	local ans={}
	if n==1 then
		table.insert(ans,{1})
		return ans

	elseif n==2 then
		local tmp1={1,1}
		local tmp2={2}
		table.insert(ans,tmp1)
		table.insert(ans,tmp2)
		return ans

	else
		local ans1=Way(n-1)
		for i,v in pairs(ans1) do
			table.insert(ans1[i],1)
			table.insert(ans,ans1[i])
		end

		local ans2=Way(n-2)
		for i,v in pairs(ans2) do
			table.insert(ans2[i],2)
			table.insert(ans,ans2[i])
		end


		return ans
	end
end

ans=Way(4)
for i,v in pairs(ans) do
	print("solve"..i..":"..table.concat(ans[i],"-"))
end

--迭代求解

function Way(n)
	resultAll={}
	tempArr1={""}
	resultAll[1]=tempArr1
	tempArr2={" 1"}
	resultAll[2]=tempArr2

	for i=3,n+1 do
		resultAll[i]={}
		for j=1,#(resultAll[i-1]) do
			table.insert(resultAll[i],resultAll[i-1][j].." 1")

		end

		for j=1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值