Java练习 SDUT-1689_斐波那契?

斐波那契?

Time Limit: 1000 ms Memory Limit: 32768 KiB

Problem Description

给出一个数列的递推公式,希望你能计算出该数列的第N个数。递推公式如下:

F(n)=F(n-1)+F(n-2)-F(n-3). 其中,F(1)=2, F(2)=3, F(3)=5.

很熟悉吧,可它貌似真的不是斐波那契数列呢,你能计算出来吗?

Input

输入只有一个正整数N(N>=4).

Output

输出只有一个整数F(N).

Sample Input

5

Sample Output

8

斐波那契的变形。

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int n,i;
        int a[] = new int[100050];
        a[1] = 2;
        a[2] = 3;
        a[3] = 5;
        n = cin.nextInt();
        for(i=4;i<=n;i++)
            a[i] =  -a[i-3] + a[i-2] + a[i-1];
        System.out.println(a[n]);
        cin.close();
    }
}

猜你喜欢

转载自www.cnblogs.com/luoxiaoyi/p/9711658.html