一些简单的lua面试题,小算法,算不上算法的算法。。╮(╯▽╰)╭博主面试的辛酸旅程
博主三个月前的一次面试把,机试,一共三个题目:用lua脚本,招聘应届生,可惜博主不会lua,所以花费一个小时学了下lua就做了前面两题
使用lua语言解出下题,分别用递归、迭代二种方式, 写出详细的代码:
楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序列出每一种走法。
例:3阶台阶的走法是
{
{ 1, 1, 1, },
{ 1, 2, },
{ 2, 1, },
}
--迭代 function Way(n) resultAll = {} tempArr1 = {""} resultAll[1] = tempArr1 tempArr2 = {" 1"} resultAll[2] = tempArr2 for i = 3,n+1 do resultAll[i] = {} for j=1,table.getn(resultAll[i-1]) do table.insert(resultAll[i], resultAll[i-1][j].." 1") end for j=1,table.getn(resultAll[i-2]) do table.insert(resultAll[i], resultAll[i-2][j].." 2") end end for i = 1,table.getn(resultAll[n+1]) do print(resultAll[n+1][i]) end end print("请输入阶层数") n=io.read("*number") io.write(Way(n)) --递归 --这是递归 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 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 print("请输入阶层数") m=0 i=io.read("*number") io.write(Way(i," ")) print("一共有"..m.."方法")
第三题有点奇葩,比较容易,但是博主做第三题是连夜火车过去,硬座,没睡,9个小时,恩,你没听错。夏天又出了一身汗
很累了,买了瓶维生素饮料刺激下自己进去机试,没想到当时语法懵了~毕竟只看了一个小时lua,过了一天又累都忘记得差不多了,头昏昏沉沉的。后来直接被刷,可惜了,热脸贴了冷屁股。
题目如下:判断一个数组里的数是否有序排列,0可以替代任何数,最大的数不会超过13。
1 table={9,8,7,6,5,4,3,0} 2 value = nil 3 function arrarr(a) 4 for k=1,#a-1 do 5 if a[k] == 0 then 6 else 7 if a[k+1] ==0 then 8 else 9 if value ~= nil then 10 if value ~= a[k+1]-a[k] then 11 return print("unordered") 12 end 13 else 14 value = a[k+1]-a[k] 15 end 16 end 17 end 18 end 19 return print("ordered") 20 end 21 22 23 arrarr(table)