Hat's Fibonacci

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

Sample Output

4203968145672990846840663646

**Note:
No generated Fibonacci number in excess of 2005 digits will be in the test data, ie. F(20) = 66526 has 5 digits.**

代码

import java.util.*;
import java.math.*;

public class Main {

    public static void main(String[] args) {
        BigInteger f[]=new BigInteger[10001];
        f[1]=new BigInteger("1");
        f[2]=new BigInteger("1");
        f[3]=new BigInteger("1");
        f[4]=new BigInteger("1");
        for(int i=5;i<=10000;i++)
        {
            f[i]=f[i-1].add(f[i-2]).add(f[i-3]).add(f[i-4]);
            //f[i]=f[i-1].add(f[i-2].add(f[i-3].add(f[i-4])));
        }
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int m=sc.nextInt();
            System.out.println(f[m]);
        }   
    }
}
//注意打表的数组的大小。note中表明,不会生成超过2005位数的斐波那契数字。

猜你喜欢

转载自blog.csdn.net/lshsgbb2333/article/details/79965518