标签:
1 #include<stdio.h> 2 __int64 a[38]={1,1}; 3 int catalan(int i,int j) 4 { 5 for(;i<38;i++) 6 {a[i]=0; 7 for(;j<=i;j++) 8 a[i]+=a[j]*a[i-j-1]; 9 j=0; 10 } 11 } 12 int main() 13 { 14 int i=1,j=0; 15 catalan(i,j); 16 int t=1,n; 17 while(~scanf("%d",&n)&&(n!=-1)) 18 { 19 printf("%d %d %I64d\n",t,n,2*a[n]); 20 t++; 21 } 22 return 0; 23 }
卡特兰数。。需要注意要用h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)这个公式否则会溢出。 |
标签:
原文地址:http://www.cnblogs.com/wangmengmeng/p/4624170.html