查找分数阶乘的递归函数(python)

查找分数阶乘的递归函数(python),python,function,recursion,factorial,Python,Function,Recursion,Factorial,好吧,我的问题是: 定义一个递归函数,该函数接受正自然数n并返回和1/1+1/2+1/3+…+1/n 到目前为止,我的函数如下所示: def harmonic(n): """Natural Number -> number""" if n == 0: return 1 else: return 1/n * harmonic(n-1) 当我运行它并输入n的数字时,它只返回表示1/n的分数的浮点,而不是阶乘。我的else语句一定有问题,

好吧,我的问题是:

定义一个递归函数,该函数接受正自然数n并返回和1/1+1/2+1/3+…+1/n

到目前为止,我的函数如下所示:

def harmonic(n):
    """Natural Number -> number"""
    if n == 0:
        return 1
    else:
        return 1/n * harmonic(n-1)

当我运行它并输入n的数字时,它只返回表示1/n的分数的浮点,而不是阶乘。我的else语句一定有问题,但我不知道它是什么。

在Python 3中该函数对我有效:harmonic3生成0.1666666,harmonic10生成2.7557319223985883e-07。在Python 2中,整数操作数是底除法,任何自然n都得到0。在Python 2中,整数操作数是整数除法!您需要从_uufuture _uuu导入分区,描述中说+但在函数中,您要乘。。。那不可能是对的。看来你写的代码不正确。首先,基本情况应该是n==1,而不是n==0。第二,使用乘法运算符而不是加法。