【问题标题】:How to get full blown of Recursive Factorial如何充分利用递归阶乘
【发布时间】:2015-03-26 03:58:37
【问题描述】:

最近我发现我无法得到我想要的东西,比如得到这个阶乘的负整数

def rec_fac(n):
   if n == 1:
       return n
   else:
       return n*rec_fac(n-1)

如果您对此代码有什么要补充的。发表评论 =)

提前致谢!

【问题讨论】:

  • 这个问题和your other question有什么不同?
  • 我需要负整数,但它不能 =(
  • rec_fact(-1) 的预期输出是什么?
  • 要试试这个 tnx =)
  • 阶乘函数只定义在自然数上(整数 >= 0)。但是,有一个相关的函数gamma function 是为所有实数定义的(负整数和零除外);它也为复数定义。对于所有正整数 n,gamma(n) == (n-1)!

标签: python python-3.x python-2.7 recursion spyder


【解决方案1】:

不确定问题是什么,但阶乘是为自然数定义的。

所以要处理负数,这样做:

def rec_fac(n):
   if n < 1:
       raise NotImplementedError('no definition for rec_fact(x) for x < 1')
   if n == 1:
       return n
   else:
       return n*rec_fac(n-1)

【讨论】:

  • 但是我们可以这样使用吗:= 120 rec_fac(-24): -5 * -24 = 24 rec_fac(6): -4 * 6 = 6 rec_fac(2): -3 * 2 = 2 rec_fac(2): -2 * -1
  • 阶乘是为自然数定义的,没有一个不是负数。
猜你喜欢
  • 2015-04-19
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 2019-08-06
  • 2019-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多