• lua 函数练习


      1 --逻辑表达式
      2 
      3 --1+2+3+...+n
      4 function fun1(n)
      5     local sum = 0
      6     for i=1,n do
      7         sum = sum + i
      8     end
      9     return sum
     10 end
     11 
     12 -- 计算奇数和 
     13 function fun2(n)
     14     local sum = 0
     15     for i=1,n,2 do
     16         sum = sum + i
     17     end
     18     return sum
     19 end
     20 
     21 -- 计算偶数和
     22 function fun3(n)
     23     local sum = 0
     24     for i=2,n,2 do
     25         sum = sum + i
     26     end
     27     return sum
     28 end
     29 
     30 -- 计算n!
     31 function fun4(n)
     32     local sum = 1
     33     for i=1,n do
     34         sum = sum * i
     35     end
     36     return sum
     37 end
     38 
     39 -- 计算1+2!+3!+...+n!
     40 function fun5(n)
     41     local sum,t=0,1
     42     for i=1,n do
     43         t = 1
     44         for j=1,i do
     45             t = t * j
     46         end
     47         sum = sum + t
     48     end
     49     return sum
     50 end
     51 
     52 -- 计算 1+ 1/1! +1/2! +1/3! + ...+1/n!
     53 function fun6(n)
     54     local sum=1
     55     for i=1,n do
     56         sum = sum + 1/fun4(i)
     57     end
     58     return sum
     59 end
     60 
     61 -- 判断n是否为素数(质数)
     62 function fun7(n)
     63     io.write(n)
     64     local t = math.sqrt(n)
     65     for i=2,t do
     66         if n%i==0 then
     67             return false
     68         end
     69     end
     70     return true
     71 end
     72 
     73 -- 1000以内的水仙花数 如 153 = 1^3 + 5^3 + 3^3
     74 function fun8()
     75     local sum = 0
     76     local i,j,k=0
     77     for num=101,999 do
     78         i = math.floor(num/100)
     79         j = math.floor(num%100/10)
     80         k = num%10
     81         if num == i^3 + j^3 + k^3  then
     82             print(num)
     83         end
     84     end
     85 end
     86 
     87 table_str = '0123456789abcdefghijklmnopqrstuvwxyz'
     88 -- 将10进制数转换为二进制数
     89 function fun9( n )
     90     local ys = n % 2
     91     n = math.floor(n/2)
     92     if n~=0 then
     93         fun9(n)
     94     end
     95     io.write(string.sub(table_str,ys+1,ys+1))
     96 end
     97 -- 将10进制数转换为八进制数
     98 function fun10( n )
     99     local ys = n % 8
    100     n = math.floor(n/8)
    101     if n~=0 then
    102         fun10(n)
    103     end
    104     io.write(string.sub(table_str,ys+1,ys+1))
    105 end
    106 
    107 -- 将10进制数转换为十六进制数
    108 function fun11( n )
    109     local ys = n % 16
    110     n = math.floor(n/16)
    111     if n~=0 then
    112         fun11(n)
    113     end
    114     io.write(string.sub(table_str,ys+1,ys+1))
    115 end
    116 
    117 -- 将10进制数转换为N进制数
    118 function fun12( n ,N)
    119     local ys = n % N
    120     n = math.floor(n/N)
    121     if n~=0 then
    122         fun12(n,N)
    123     end
    124     io.write(string.sub(table_str,ys+1,ys+1))
    125 end
    126 
    127 
    128 function main( )
    129     print(fun1(100))
    130     print(fun2(10))
    131     print(fun3(10))
    132     print(fun4(10))
    133     print(fun5(4))--1+2+6+24 
    134     print(fun6(20))
    135     print(fun7(20) and '是素数!' or '不是素数')
    136     print(fun7(13) and '是素数!' or '不是素数')
    137     fun8() -- 水仙花
    138     fun9(100);print('')--转换为二进制
    139     fun10(100);print('')--转换为八进制
    140     fun11(100);print('')--转换为十六进制
    141     fun12(100,36);print('')--转换为36进制
    142 end
    143 
    144 main()
  • 相关阅读:
    virtualenv
    linux基础命令:
    middleware
    scrapy-redis
    kubernetes 应用快速入门
    linux expect spawn的用法
    Linux 内存分析工具—free命令
    kubeadm安装kubenetes1.15.4集群
    kubenetes基本概念和术语
    docker-machine使用
  • 原文地址:https://www.cnblogs.com/dzqdzq/p/3795258.html
Copyright © 2020-2023  润新知