How Many Trees?

本文介绍了一种使用C++编程语言实现的卡特兰数计算方法。通过动态规划的方式,该程序能够有效地计算出指定范围内任意一个卡特兰数,并以逆序方式输出其每一位数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


卡特兰数


#include <iostream>
#include <algorithm>
using namespace std;
int a[105][100];//ans[i][j] i表示第几个卡特兰数,
                  //j=0表示位数,j从1到ans[i][0]是个位数往上                
void ktl()
{
a[1][0]=1; a[1][1]=1;
a[2][0]=1; a[2][1]=2;
int len=1,yu,t,i,j;
for( i=3;i<=104;i++)
   {
    yu=0;
    for(j=1;j<=len;j++) 
    {
  t=a[i-1][j]*(4*i-2)+yu;//注意先乘再加余数 
      a[i][j]=t%10;//这一位的值是对10取余 
       yu=t/10;//进位是除以10 
        }
        while(yu)
          {
          a[i][++len]=yu%10;
   yu/=10;
  }
for(j=len;j>=1;j--)
    {
    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))
     {
      for(int i=a[n][0];i>0;i--)
          printf("%d",a[n][i]);
          printf("\n");
 }
return 0;
 } 

R R version 4.2.2 (2022-10-31) -- "Innocent and Trusting" Copyright (C) 2022 The R Foundation for Statistical Computing Platform: x86_64-conda-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors.Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. library(ape) setwd("/ifs1/User/dengwei/NTF_data/7.14/rooted_species_tree") species_tree <- read.tree("species_tree.treefile")> compare_trees <- function(gene_tree_file, species_tree) { gene_tree <- read.tree(gene_tree_file) diff_count <- comparePhylo(gene_tree, species_tree, force.rooted = TRUE) return(diff_count) } batch_compare_trees <- function(gene_tree_folder, species_tree) { gene_tree_files <- list.files(path = gene_tree_folder, pattern = ".treefile", full.names = TRUE) diff_counts <- data.frame(Gene_Tree_File = gene_tree_files, Diff_Count = numeric(length(gene_tree_files)), stringsAsFactors = FALSE) for (i in seq_along(gene_tree_files)) { gene_tree_file <- gene_tree_files[i] diff_counts$Diff_Count[i] <- compare_trees(gene_tree_file, species_tree) } return(diff_counts) } gene_tree_folder <- "/ifs1/User/dengwei/NTF_data/7.14/rooted_gene_tree" diff_counts <- batch_compare_trees(gene_tree_folder, species_tree) Error in if (n1 == n2) paste("Both trees have the same number of tips:", : the condition has length > 1
07-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wym_king

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值