hdu 1023(大數+卡特蘭數)
阿新 • • 發佈:2019-02-10
題目:和那個I有關,是問火車按一定順序進站,出戰的順序有多少中。
分析: 典型的卡特蘭數,但本題數量巨大 所以採用大數來寫 java中提供了大數類,所以用了java寫
卡特蘭數公式:h(n)=C(2n,n)/(n-1) 遞推式: h(n)=h(n-1)*(4*n-2)/(n+1);
程式碼如下:
import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin=new Scanner(System.in); BigInteger s[]=new BigInteger[105]; s[1]=BigInteger.ONE; for(int i=2;i<105;i++){ s[i]=s[i-1].multiply(BigInteger.valueOf((4*i-2))).divide(BigInteger.valueOf(i+1)); } while(cin.hasNext()){ int n=cin.nextInt(); System.out.println(s[n]); } } }