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

 

posted @ 2018-12-24 20:39  _清风明月  阅读(481)  评论(0编辑  收藏  举报