题目描述:
As we all know the Train Problem I, the boss of the Ignatius Train Station want to know if all the trains come in strict-increasing order, how many orders that all the trains can get out of the railway.
输入:
The input contains several test cases. Each test cases consists of a number N(1<=N<=100). The input is terminated by the end of file.
输出:
For each test case, you should output how many ways that all the trains can get out of the railway.
样例输入:
1
2
3
10
样例输出:
1
2
5
16796
提示:
The result will be very large, so you may not process it by 32-bit integers.
大整数运算,有点头秃,用java写了一下,毕竟Java的大整数挺好用的
这个公式,,,表示真的完全没有想到
所以补充一下
卡兰特数的递推方程:h(n ) = h(n-1)(4n-2) / (n+1)
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
BigInteger []k=new BigInteger[107];
k[1]=BigInteger.valueOf(1);
for(int i=2;i<=100;i++){
k[i]=k[i-1].multiply(BigInteger.valueOf(4*i-2)).divide(BigInteger.valueOf(i+1));
}
while(cin.hasNext()){
int n=cin.nextInt();
System.out.println(k[n]);
}
}
}