zoukankan      html  css  js  c++  java
  • 一些简单的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)
    
    
  • 相关阅读:
    网络管理和nmcli命令的使用——网络接口配置-bonding实验步骤
    raid组合优缺点介绍和创建LVM实验个人笔记
    磁盘分区就是这么简单,电脑小白都能看懂的磁盘分区教程!
    C盘优化之桌面移动法,拯救你爆满的C盘!
    电脑软件打开也有讲究,电脑软件打开方式总结!
    电脑使用建议大全,注意这些细节可以让你的电脑更好用!
    CentOS服务器apache绑定多个域名的方法
    CentOS 7使用yum安装PHP5.6
    PhpMyAdmin 配置文件现在需要一个短语密码的解决方法
    CentOs 7.*中配置安装phpMyAdmin的完整步骤记录
  • 原文地址:https://www.cnblogs.com/dragonmoon/p/4047623.html
Copyright © 2011-2022 走看看