LUA面试题:楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序列出每一种走法。
2016-11-12 11:07
1106 查看
使用lua语言解出下题,分别用递归、迭代二种方式, 写出详细的代码:
楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序列出每一种走法。
例:3阶台阶的走法是
{
{ 1, 1, 1, },
{ 1, 2, },
{ 2, 1, },
}
递归:
迭代:
楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序列出每一种走法。
例:3阶台阶的走法是
{
{ 1, 1, 1, },
{ 1, 2, },
{ 2, 1, },
}
递归:
function SteupInput( Input,Num ) if Input==1 then print(Num .." 1 ") m = m + 1 elseif Input==2 then print(Num .." 1 1") print(Num .." 2") m = m + 2 else print("请输入正确的阶层数") end end function Way( InputNnum,Steup ) if InputNnum<=2 then SteupInput(InputNnum,Steup) else for Num=1,2 do Way(InputNnum-Num,Steup .." "..Num) end end end print("请输入阶层数") m = 0 i = io.read("*number") io.write(Way(i," ")) print("一共有" ..m.. "方法")
迭代:
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,#(resultAll[i-2])do table.insert(resultAll[i],resultAll[i-2][j].. " 2") end end for i=1,#resultAll[n+1] do print(resultAll[n+1][i]) end end print("请输入阶层数") n = io.read("number") io.write(Way(n))
相关文章推荐
- 问题五十七: 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编程序计算共有多少种不同的走法?
- 楼梯有n阶台阶,上楼可以一步上1阶,2阶,3阶,编程序计算共有多少种不同的走法?
- 楼梯有n阶台阶,上楼可以一步上1阶,2阶,3阶,编程序计算共有多少种不同的走法?
- 楼梯上有n阶台阶,上楼时可以一步上1阶,也可以一步上两阶,编写算法计算共有多少种不同的上楼梯的方法。
- 一个人走一个n阶的楼梯,他一步可以走1阶,2阶,3阶,这三种情况,问走完这n阶的楼梯共有多少种不同的走法?
- 青蛙跳台阶,可以跳1阶,也可以跳2阶,N阶台阶有多少种跳的方式,算法题
- 也说说有N阶楼梯每次可以选择下1阶、2阶、3阶一共有多少种下法的问题
- 本实例程序可以列出本地硬盘上所有驱动器
- 有一个100个台阶的阶梯,一次可以选择上一个台阶,或者两个台阶,最后上到楼梯顶有几种走法?
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- 【C语言】【面试题】使用main函数的参数,实现一个整数计算机,程序可以接受三个参数
- lua 提取 字符串操作 可以用在c 程序当中 2
- 腾讯面试题:走到50台阶的可能数(台阶可以一次走一阶或者二阶),三种方式实现
- 梯有N阶,上楼可以一步上一阶,也可以一次上二阶(Java实现)
- ls命令具有一个-r选项,可以递归的列出子目录中的内容。请编写一个具有同样功能的程序。
- 爱因斯坦 上楼梯问题 若每步跨2阶,剩1阶 两种方法
- 一个可以列出你所有博文浏览量的程序
- JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式 --==- 附上可以编译的程序
- 【逻辑题】每次1阶或者2阶,共7阶楼梯,多少种走法
- JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式 --==- 附上可以编译的程序