学习lua之递归

爬楼梯 一次走1阶或者2阶。打印出爬楼梯过程

例子 爬3楼

111 12 21三种爬方式

递归代码

local q={0,0,0,0,0,0,0,0,0};
local x=3;
 num=1;
print("ANSWER")
function A(n)
	
	if(n==x)then
		for j,v in ipairs(q) do
			if(v~=0)then
			print(v);
			end;
		end;
		print('\n');
		for j=num-1, x,1 do
		q[j]=0;
		end;
		
	else 
	for i=1,2,1 do
		if(n+i<=x) then
		q[num]=i;
		num=num+1;
	    A(n+i);	
	    num=num-1;
		end
	end
	end	
end
A(0);
过程就是 函数A(n)
n代表当前阶梯数。到达目的之前。判断一下下一步是否合法,合法就进入A(n+1) 和A(n+2),还要把当前这一次走的步数存进表里。 当到达目的 就打印表也就是里面存的每一步的走法,再把不用的数据清零。接着走 直到走完所有方法

你可能感兴趣的:(lua,基础)