【打表】 Hat's Fabonacci

传送门

题意

一个数列 \(f\),数列的递推式如下

\[f_{1}=1,f_{2}=1,f_{3}=1,f_{4}=1 \]

\[f_{i}(i>4) =f_{i-1}+f_{i-2}+f_{i-3}+f_{i-4} \]

多组输入,每次输入一个\(n\)求出第\(n\)

数据范围

\(\exist f_{i} > 10^{18}\)

题解

打表前\(10000\)项,每次直接查询

Code

//package com.company;
 import java.math.BigInteger;
 import java.util.Scanner;
 public class Main{
     public static void main(String[] args)
     {
		Scanner in=new Scanner(System.in);
		BigInteger f[]=new BigInteger[10000];
		f[1]=f[2]=f[3]=f[4]=BigInteger.valueOf(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]);
		}
        while(in.hasNext())
        {
            int n=in.nextInt();
            System.out.println(f[n]);
        }
    }
}
posted @ 2020-09-21 16:05  Hyx'  阅读(116)  评论(0)    收藏  举报