杭电2067(小兔的棋盘)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 //杭电2067 2 //catalan加泰罗尼亚数 3 #include<stdio.h> 4 #include<string.h> 5 6 int main() 7 { 8 int n,i,c,j; 9 __int64 f[40][40]; 10 memset(f,0,sizeof(f)); 11 f[0][0]=1; 12 for(i=0;i<36;i++) 13 for(j=0;j<=i;j++) 14 { 15 if(i==j&&j==0) 16 continue; 17 18 if(i-1>=0) 19 f[i][j]+=f[i-1][j]; 20 if(j-1>=0) 21 f[i][j]+=f[i][j-1]; 22 } 23 c=0; 24 while(scanf("%d",&n),n!=-1) 25 { 26 c++; 27 printf("%d %d %I64d\n",c,n,f[n][n]*2);//不穿越可以走下面或者上面,所以是两倍 28 } 29 return 0; 30 }