卡特兰数模板
Posted 俺叫王梦涵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卡特兰数模板相关的知识,希望对你有一定的参考价值。
#include<stdio.h> //******************************* //打表卡特兰数 //第 n个 卡特兰数存在a[n]中,a[n][0]表示长度; //注意数是倒着存的,个位是 a[n][1] 输出时注意倒过来。 //********************************* int a[105][100]; void ktl() { int i,j,yu,len; a[2][0]=1; a[2][1]=2; a[1][0]=1; a[1][1]=1; len=1; for(i=3;i<101;i++) { yu=0; for(j=1;j<=len;j++) { int t=(a[i-1][j])*(4*i-2)+yu; yu=t/10; a[i][j]=t%10; } while(yu) { a[i][++len]=yu%10; yu/=10; } for(j=len;j>=1;j--) { int t=a[i][j]+yu*10; a[i][j]=t/(i+1); yu = t%(i+1); } while(!a[i][len]) { len--; } a[i][0]=len; } } int main() { ktl(); int n; while(scanf("%d",&n)!=EOF) { for(int i=a[n][0];i>0;i--) { printf("%d",a[n][i]); } puts(""); } return 0; }
以上是关于卡特兰数模板的主要内容,如果未能解决你的问题,请参考以下文章