lua学习之循环求一个数的阶乘
1 --第3题 利用循环求n的阶乘 2 --参数检查是否是自然数 3 4 function IsNaturalNumber(n) 5 if(n < 0 or n%1 ~= 0)then 6 return false 7 else 8 return true 9 end 10 end 11 function factorial(n) 12 --参数检查 13 if(not IsNaturalNumber(n))then 14 print("参数有误") 15 return 16 end 17 --若输入的是0直接返回1 18 if(n == 0)then 19 return 1 20 end 21 --输入的是正整数 22 local res = 1 23 for i = n, 1, -1 do 24 res = res * i 25 end 26 return res 27 end 28 --TEST CODE 29 --factorial(-1) 30 n = 4 31 result = factorial(n) 32 print(string.format("%d! = %d", n, result)) --output:4! = 24