题目大意:             让你输入一个数n,代表有n个人,然后n个人里面,一定不能有一个女的是孤立的,当然,也可以没有女的。 要你输出所有可能的种类。 解题思路:            求递推式。            情况一:(最后是以男生结尾的) 这时候是:f[n-1]+男;            情况二:(最后是以女生结尾的)                          1.这时候有可能:f[n-2]+女+女                          2.还有可能:f[n-4]+男+女+女+女             所以最后的递推式是:f[n]=f[n-1]+f[n-2]+f[n-4];数递增得很快,要用大数搞。
import java.math.*;
import java.util.Scanner;
public class Main {

	public static void main(String []args)
	{
		Scanner cin=new Scanner(System.in);
		BigInteger f[]=new BigInteger[1005];
		f[0]=new BigInteger("1");
		f[1]=new BigInteger("1");
		f[2]=new BigInteger("2");
		f[3]=new BigInteger("4");
		for(int i=4;i<1005;i++)	
			f[i]=f[i-1].add(f[i-2]).add(f[i-4]);
		while(cin.hasNext())
		{
			int n=cin.nextInt();
			System.out.println(f[n].toString());
		}	
	}
}

posted on 2011-11-06 20:13  cchun  阅读(256)  评论(0编辑  收藏  举报