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