HDU 1250 Hat's Fibonacci(大數相加)
阿新 • • 發佈:2019-02-07
Hat's Fibonacci
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.
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.math.BigInteger; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n; while(in.hasNext()){ n = in.nextInt(); if(n <= 4) System.out.println(1); else{ BigInteger one = new BigInteger("1"); BigInteger two = new BigInteger("1"); BigInteger three = new BigInteger("1"); BigInteger four = new BigInteger("1"); BigInteger res = new BigInteger("1"); for(int i = 4;i < n;i++){ res = one.add(two).add(three).add(four);//加法為函式的形式 one = two; two = three; three = four; four = res; } System.out.println(res); } } } }