天天看點

ACM刷題之HDU————Hat's FibonacciHat's Fibonacci

Hat's Fibonacci

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2053 Accepted Submission(s): 802

Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequence, with the first two members being both 1.

F(1) = 1, F(2) = 1, F(3) = 1,F(4) = 1, F(n>4) = F(n - 1) + F(n-2) + F(n-3) + F(n-4)

Your task is to take a number as input, and print that Fibonacci number.

Input Each line will contain an integers. Process to end of file.
Output For each case, output the result in a line.  
Sample Input
100      
JAVA 大數大法好! 這題之前一直卡着。原來用高精度來做,但是送出每次都會爆記憶體。于是就放着沒做了。這兩天自學了點JAVA,于是又撿起來。 大數的基本操作就不羅列了,下面是ac代碼:
import java.math.BigInteger;
import java.util.Scanner;
import java.math.*;
import java.text.*;
public class Main {

	public static void main(String[] args) {
		// TODO 自動生成的方法存根
		Scanner cin=new Scanner(System.in);
		int i;
		BigInteger[] big = new BigInteger[12000];
		big[1] = new BigInteger("1");
		big[2] = new BigInteger("1");
		big[3] = new BigInteger("1");
		big[4] = new BigInteger("1");
		for(i=5;i<11111;i++)
		{
			 big[i] =big[i-1].add(big[i-2]);
			 big[i] = big[i].add(big[i-3]);
			 big[i] = big[i].add(big[i-4]);
		}
		
		while(cin.hasNext())   //等同于!=EOF
		{
			i=cin.nextInt();
			System.out.println(big[i]);
		}
	}

}