本文主要是介绍hdu 1131 卡特兰数,大数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这道题和hdu1130 是姊妹题。
hdu 1130是典型的卡特兰数题。这题又加了标签,所以总数是卡特兰数乘以n的阶乘。
/*
* create by zzy at 2017,2:03:40 PM
*/import java.math.BigInteger;
import java.util.Scanner;
public class Main {static int max=105;static BigInteger[]h=new BigInteger[max];static BigInteger[] fact=new BigInteger[max];public static void getFactorial(){fact[0]=BigInteger.valueOf(1);fact[1]=BigInteger.valueOf(1);for(int i=2;i<max;i++){// n!= n*(n-1)!// fact(i) =i*fact(i-1)fact[i]=BigInteger.valueOf(i).multiply(fact[i-1]);}}public static void getCatlanten(){h[0]=BigInteger.valueOf(1);h[1]=BigInteger.valueOf(1);for(int i=2;i<max;i++){//hn=(4*n-2)/(n+1) *h[n-1]h[i]=h[i-1].multiply(BigInteger.valueOf(4*i-2)).divide(BigInteger.valueOf(i+1));}}public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);int n;getCatlanten();getFactorial();while(in.hasNextInt()){n=in.nextInt();if(n==0)break;System.out.println(h[n].multiply(fact[n]));}}}
这篇关于hdu 1131 卡特兰数,大数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!