一些简单的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)

 


 

posted @ 2014-10-24 10:17  落雪成冰  阅读(8238)  评论(0编辑  收藏  举报