阶乘

计算一个数的阶乘。

  • 使用递归。
  • 如果 num 小于等于 1,返回 1
  • 否则,返回 num 乘以 num - 1 的阶乘。
  • 如果 num 是负数或浮点数,抛出异常。
def factorial(num):
  if not ((num >= 0) and (num % 1 == 0)):
    raise Exception("数字不能是浮点数或负数。")
  return 1 if num == 0 else num * factorial(num - 1)

factorial(6) # 720