• Lua习题练习(9*9乘法表,输出所指定的图像,斐波那契数列)


    1. (循环语句的嵌套使用)有 1,2,3,4四个数字,能组成多少个互不相同且无重复数字的 三位数,并输出在屏幕上面
    2. 计算斐波那携数列的前20个数字,并输出在屏幕上面 。指的是这样一个数列(1,1,2,3,5,8,13...21,....)要用到递归函数
    3. 输出一个* 的三角形
    4. 9*9乘法表(不同结构的输出)

    --有 1,2,3,4四个数字,能组成多少个互不相同且无重复数字的 三位数,并输出在屏幕上面
    for i = 1,4 ,1 do
        for j = 1,4,1 do
            for p = 1, 4,1 do
                if  i ~= j and i ~= p and j ~= p then
                    print(i..j..p)
                end
            end
        end
    end
    --计算斐波那携数列的前20个数字,并输出在屏幕上面 。指的是这样一个数列(1,1,2,3,5,8,13...21,....)
    --要用到递归函数
    function fb(i)
        if i<=2 and i>0 then
            return 1
        else
            local j = fb(i-1)+fb(i-2)
            return j
        end
    end
    i = 1
    while i<=20 do
        print(""..i.."个数是"..fb(i))
        i = i+1
    end
    
    -- 输出一个* 的三角形
    for x = 1,7,1 do
        local j = ""
        for y = 1,7,1 do
            if y <= x then
            j = j.."*"
            end
        end
        print (j)
    end
    --[[
    x=1,y=1时输出*    y=2,34567 都不输出东西        *
    x=2 y=1,2 时输出, y=34567不输出                **
    x=3 y=123输出 ,y=4567不输出                    ***
    .......以此类推--]]
    --[[
    *
    **
    ***
    ****
    *****
    ******
    *******
    --]]
    --9*9乘法表  结果在个位数补领0。为了格式的好看
    for i = 1,9,1 do 
        local x = ""
        for  j = 1,9,1 do 
            if j>=i then
                n = i*j
                if n<=9 then
                    n = "0"..n 
                end
                x = x..i.."*"..j.."="..n.." "
                end
            end
    print(x)
    end
    
    --[[
    1*1=01 1*2=02 1*3=03 1*4=04 1*5=05 1*6=06 1*7=07 1*8=08 1*9=09 
    2*2=04 2*3=06 2*4=08 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 
    3*3=09 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27 
    4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36 
    5*5=25 5*6=30 5*7=35 5*8=40 5*9=45 
    6*6=36 6*7=42 6*8=48 6*9=54 
    7*7=49 7*8=56 7*9=63 
    8*8=64 8*9=72 
    9*9=81 
    --]]
    for m=1,9 do                           -- for循环1到9  
        local s = ""                       -- 定义一个用来输出的字符串S  
        for n=1,9 do                       -- 内层循环1到9  
            if n <= m then                 -- 注意if后面要加then  
                s = s..m.."x"..n.."="..m*n -- ..表示字符串拼接  
                if n ~= m then             -- 如果n不等于m 就怎样怎样  
                    s = s..", "            -- 就在这句话的后面加上逗号","  
                end  
            end          
        end  
        print(s)  
    end  
    --[[
    1x1=1
    2x1=2, 2x2=4
    3x1=3, 3x2=6, 3x3=9
    4x1=4, 4x2=8, 4x3=12, 4x4=16
    5x1=5, 5x2=10, 5x3=15, 5x4=20, 5x5=25
    6x1=6, 6x2=12, 6x3=18, 6x4=24, 6x5=30, 6x6=36
    7x1=7, 7x2=14, 7x3=21, 7x4=28, 7x5=35, 7x6=42, 7x7=49
    8x1=8, 8x2=16, 8x3=24, 8x4=32, 8x5=40, 8x6=48, 8x7=56, 8x8=64
    9x1=9, 9x2=18, 9x3=27, 9x4=36, 9x5=45, 9x6=54, 9x7=63, 9x8=72, 9x9=81
    --]]
    for   a = 1,9 do
        local s = ""
        for b=a,9 do
            s = s..string.format( "%dX%d=%d	",10-a,b,(10-a)*b ) --实现乘法表从9-1递减打印效果
        end                                                              --%d - 接受一个数字并将其转化为有符号的整数格式
        print(s)
    end
    --[[
    9X1=9    9X2=18    9X3=27    9X4=36    9X5=45    9X6=54    9X7=63    9X8=72    9X9=81    
    8X2=16    8X3=24    8X4=32    8X5=40    8X6=48    8X7=56    8X8=64    8X9=72    
    7X3=21    7X4=28    7X5=35    7X6=42    7X7=49    7X8=56    7X9=63    
    6X4=24    6X5=30    6X6=36    6X7=42    6X8=48    6X9=54    
    5X5=25    5X6=30    5X7=35    5X8=40    5X9=45    
    4X6=24    4X7=28    4X8=32    4X9=36    
    3X7=21    3X8=24    3X9=27    
    2X8=16    2X9=18    
    1X9=9
    --]] 
    我们什么都没有,唯一的本钱就是青春。梦想让我与众不同,奋斗让我改变命运!
  • 相关阅读:
    【Little Demo】左右按钮tab选项卡双切换
    【Little Demo】从简单的Tab标签到Tab图片切换
    前端工程师说明(仅以自勉)
    CSS 布局整理
    【Javascript Demo】图片瀑布流实现
    【jQuery Demo】图片瀑布流实现
    【CSS Demo】纯 CSS 打造 Flow-Steps 导航
    【CSS Demo】网站页面变灰
    gradlew命令
    Fragment中不能使用自定义带参构造函数
  • 原文地址:https://www.cnblogs.com/mengmengxia/p/9229455.html
Copyright © 2020-2023  润新知