其实递推式是很简单的!不过数据太大牵扯到了大整数,以前自己用c写过大整数的加减乘除。 本来想调出来用用的,不过,想想,自己还是要学着写JAVA。决定用JAVA的大整数做。 第一次试着用jAVA做,一次AC,太开心了。。。。 递推式:f[n]=f[n-1]*2+f[i]*f[n-i-1] i:1.....n-1 import java.math.BigInteger; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String args[]) { List list = new ArrayList(101); BigInteger f= BigInteger.valueOf(1); list.add(f); f= BigInteger.valueOf(2); list.add(f); for(int i=2;i<100;i++) { f=(BigInteger)list.get(i-1); f=f.multiply(BigInteger.valueOf(2)); for(int j=0;j<i-1;j++) { f=f.add(((BigInteger)list.get(j)).multiply((BigInteger)list.get(i-j-2))); } list.add(f); } Scanner cin = new Scanner(System.in); int inputInt=0; while(cin.hasNext()){ inputInt= cin.nextInt(); // System.out.println(inputInt); System.out.println(list.get(inputInt-1)); } } }

评论