题目描述

你应该很熟悉斐波那契数列,不是吗?现在谷学长不知在哪里搞了个山寨版斐波拉契数列,如下公式:
F(n)=
{
a, n=1
b, n=2
F(n-1)+F(n-2), n>2并且n是奇数
F(n-1)+F(n-2)+F(n-3), n>2并且n是偶数
}

这里a和b是定值,现给出a,b和n,你的任务是计算F(n)。

输入描述

第一行有一个正整数T(T<=10),表示测试实例的个数。每个测试实例包括三个正整数a,b和n(a<=10,b<=10,n<=30)。

输出描述

对于每个测试实例,输出一行包含一个正整数F(n)。

样例输入

2
1 2 3
1 3 6

样例输出

3
24

源码:

import java.util.Scanner;
public class Main {
    private static int a;
    private static int b;
    private static int n;
        public static void main(String[] args) {
            Scanner scanner= new Scanner(System.in);
            int N=scanner.nextInt();
            while(N>0) {
                a=scanner.nextInt();
                b=scanner.nextInt();
                n=scanner.nextInt();
                System.out.println(f(n));
                N--;
            }
        }
        private static int f(int n) {
            // TODO Auto-generated method stub
            int c = 0;
            if (n==1) {
                c=a;
            }
            if (n==2) {
                c=b;
            }
            if (n>2) {
                if (n%2==0) {
                    c=f(n-1)+f(n-2)+f(n-3);
                }
                else {    
                    c=f(n-1)+f(n-2);
                }
            }
            return c;
        }
}

小结:
本题运用递归的思想

最后修改:2022 年 04 月 24 日
如果觉得我的文章对你有用,请随意赞赏