题目描述
你应该很熟悉斐波那契数列,不是吗?现在谷学长不知在哪里搞了个山寨版斐波拉契数列,如下公式:
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;
}
}
小结:
本题运用递归的思想