前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >How Many Trees?

How Many Trees?

作者头像
用户2965768
发布2018-08-30 17:13:42
4100
发布2018-08-30 17:13:42
举报
文章被收录于专栏:wymwym

卡特兰数

#include <iostream>

#include <algorithm>

using namespace std;

int a105;//ansi i表示第几个卡特兰数,

代码语言:txt
复制
              //j=0表示位数,j从1到ans[i][0]是个位数往上                

void ktl()

{

a1=1; a1=1;

a2=1; a2=2;

int len=1,yu,t,i,j;

for( i=3;i<=104;i++)

代码语言:txt
复制
 {

yu=0;

for(j=1;j<=len;j++)

代码语言:txt
复制
{
代码语言:txt
复制
t=a[i-1][j]\*(4\*i-2)+yu;//注意先乘再加余数 
代码语言:txt
复制
  a[i][j]=t%10;//这一位的值是对10取余 
代码语言:txt
复制
   yu=t/10;//进位是除以10 
代码语言:txt
复制
      }
代码语言:txt
复制
      while(yu)
代码语言:txt
复制
        {

ai=yu%10;

代码语言:txt
复制
 yu/=10;
代码语言:txt
复制
}

for(j=len;j>=1;j--)

代码语言:txt
复制
  {

t=ai+yu*10;//除法先加“余数”再除

代码语言:txt
复制
    a[i][j]=t/(i+1);//留在这一位是除 

yu=t%(i+1);//“余数”是取余

//除法和乘法是逆过程,计算时也是反过来

}

while(!ai)

代码语言:txt
复制
  {

len--;

}

ai=len;

}

}

int main()

{

ktl();

int n;

while(~scanf("%d",&n))

代码语言:txt
复制
   {
代码语言:txt
复制
for(int i=a[n][0];i>0;i--)
代码语言:txt
复制
    printf("%d",a[n][i]);
代码语言:txt
复制
    printf("\n");

}

return 0;

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月05日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档