标准二维表问题--java

本文介绍如何通过计算Catalan数来确定给定正整数n时,由正整数1到2n组成的2*n标准二维表的个数。

问题描述:

    设n是一个正整数。2*n的标准二维表是由正整数1,2,…,2n组成的2*n数组,该数组的每行从左到右递增,每列从上到下递增。2*n的标准二维表全体记为tab(n)。例如,当n=3时,tab(3)二维表如下图所示。


1

2

3

4

5

6

1

2

4

3

5

6

1

2

5

3

4

6

1

3

4

2

5

6

1

3

5

2

4

6

 

编程任务:

    给定正整数n,试计算tab(n)中2*n二维表的个数。



import java.util.ArrayList;

import java.util.List;
import java.util.Scanner;


/**
 * 标准二维表问题
 * 数学原理:Catalan数
 * @author Administrator
 *
 */
public class Two_table {
List<Integer> list;
public Two_table(int n,List<Integer> list){
this.list=list;
this.Tab(n, list);
}

void Tab(int n,List<Integer> list){
list.add(0,1);
for(int i=1;i<=n;i++){
Integer e=list.get(i-1)*((4*i)-2)/(i+1);
list.add(i,e);
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入二维表的N值:");
int n=sc.nextInt();
Two_table tt=new Two_table(n,new ArrayList<Integer>());
System.out.println(tt.list.get(n));
}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值