把n的Catalan(卡特兰)数表示为h(n),则有h(1)=1,h(n)=C(2n,n)/(n+1)(n>1)。C(n,m)表示组合数;例如,当n=5、m=2时,组合数C(5,3)=(5×4×3)/(3×2×1)=10。
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个正整数n(1 ≤n ≤ 100)。
输出格式:
对于每组测试,在一行上输出n的Catalan数h(n)。
输入样例:
3
输出样例:
5
代码实现:
import math
def catalan(n):
if n == 1:
return 1
else:
return math.comb(2*n, n)//(n+1)
try:
while True:
n = int(input())
print(catalan(n))
except EOFError:
pass
心得:
这题最开始写的时候也是一直过不了,后来发现是输出的时候加了.0f控制格式的问题 ,这么写会在大的数值上出现错误