问题描述:
设n是一个正整数。2*n的标准二维表是由正整数1,2,…,2n组成的2*n数组,该数组的每行从左到右递增,每列从上到下递增。2*n的标准二维表全体记为tab(n)。例如,当n=3时,tab(3)二维表如下图所示。
|
|
|
|
|
编程任务:
给定正整数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));
}
}