hdu1023:卡特兰数
火车进站问题
卡特兰数引入的例子。
卡特兰数递推公式:h(n)=h(n-1)*(4*n-2)/(n+1)
通项公式:h(n)=c(2n,n)/(n+1)...
这题需要高精度,刚好学了一下java。。。第一次写的java好丑啊,还好1y了。。
import java.math.*; import java.util.*; public class Main { public static BigInteger BI(int x) { return BigInteger.valueOf(x); } public static BigInteger solve(BigInteger n) { BigInteger res; if(n.compareTo(BI(1))==0) res=BI(1); else { res=solve(n.add(BI(-1))); res=res.multiply(n.multiply(BI(4)).add(BI(-2))); res=res.divide(n.add(BI(1))); } return res; } public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()) { BigInteger a=in.nextBigInteger(); System.out.println(solve(a)); } } }