首页 > 代码库 > lua 函数练习
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 % 8100 n = math.floor(n/8)101 if n~=0 then102 fun10(n)103 end104 io.write(string.sub(table_str,ys+1,ys+1))105 end106 107 -- 将10进制数转换为十六进制数108 function fun11( n )109 local ys = n % 16110 n = math.floor(n/16)111 if n~=0 then112 fun11(n)113 end114 io.write(string.sub(table_str,ys+1,ys+1))115 end116 117 -- 将10进制数转换为N进制数118 function fun12( n ,N)119 local ys = n % N120 n = math.floor(n/N)121 if n~=0 then122 fun12(n,N)123 end124 io.write(string.sub(table_str,ys+1,ys+1))125 end126 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 end143 144 main()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。