杭电2067(小兔的棋盘)

View Code
 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 }

 

posted @ 2012-07-09 19:44  zlyblog  阅读(345)  评论(0编辑  收藏  举报