1134
import java.io.*;
import java.math.*;
import java.util.*;
public class Main{
public static void main(String []args){
Scanner cin = new Scanner(System.in);
Integer N = 101,i;
BigInteger []cat = new BigInteger[N];
cat[0] = cat[1] = BigInteger.valueOf(1);
for(i = 2; i < N; ++i){
cat[i] = cat[i-1].multiply(BigInteger.valueOf(i*4-2)).divide(BigInteger.valueOf(i+1));
}
while(cin.hasNext()){
i = cin.nextInt();
if(i == -1)
break;
System.out.println(cat[i]);
}
}
}
This is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, ... , 2n - 1, 2n c
该博客介绍了如何使用Java编程解决两个与卡特兰数相关的算法问题。第一个问题是计算圆圈中数字配对的不同方式,它展示了卡特兰数的计算公式;第二个问题是一个经典的走格子问题,同样用卡特兰数乘以2来求解。博客提供了完整的Java代码实现,并给出了样例输入和输出。
订阅专栏 解锁全文
436

被折叠的 条评论
为什么被折叠?



