【打表】 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]);
}
}
}

浙公网安备 33010602011771号