Python 2.7 没有for循环,如何计算Caltalan数?

Python 2.7 没有for循环,如何计算Caltalan数?,python-2.7,Python 2.7,我有这段代码用于计算加泰罗尼亚数字,但在代码中我使用了for循环。 我如何在不使用任何循环的情况下完成它? 谢谢你的帮助! 代码如下: def catalan_rec(n): answer=0 lst_rec=[] if n==0 or n==1: return 1 else: for i in range(0,n): answer+= (catalan_rec(i))*(catalan_

我有这段代码用于计算加泰罗尼亚数字,但在代码中我使用了for循环。 我如何在不使用任何循环的情况下完成它? 谢谢你的帮助! 代码如下:

def catalan_rec(n):
    answer=0          
    lst_rec=[]
    if n==0 or n==1:
        return 1
    else:
        for i in range(0,n):
            answer+= (catalan_rec(i))*(catalan_rec(n-1-i))

        return answer
直接公式


我投票结束这个问题,因为我们的指导规定,“要求家庭作业帮助的问题必须包括到目前为止你为解决问题所做的工作的摘要,以及你解决问题的困难的描述。”欢迎来到Stack Overflow。这不是家庭作业写作服务。恐怕你得自己做工作了。您的讲师将其交给您,以评估您对课程材料的理解。看见如果您遇到问题,请向您的讲师寻求帮助。如果你只是不愿意做这项工作,请咨询你的顾问,帮助你找到更合适的学习课程。祝你好运。有一个替代的递归公式,不需要求和;有显式的公式,Python有一个
math.factorial(x)
函数。
from math import factorial

def catalan(n):
    if n == 0 or n == 1:
        return 1
    else:
        answer = factorial(2*n)/(factorial(n+1)*factorial(n))
    return int(answer)