Problem Description
Fibonacci sequence is familiar to you, right? Here comes the SZ Fibonacci sequence, with the property like the following formula.
F(n)= a (n=1)
F(n)= b (n=2)
F(n)= F(n-1)+F(n-2), n>2 and n is odd
F(n)= F(n-1)+F(n-2)+F(n-3), n>2 and n is even
Here a and b are constants. Given a,b,and n, your task is to calculate the F(n).
F(n)= a (n=1)
F(n)= b (n=2)
F(n)= F(n-1)+F(n-2), n>2 and n is odd
F(n)= F(n-1)+F(n-2)+F(n-3), n>2 and n is even
Here a and b are constants. Given a,b,and n, your task is to calculate the F(n).
Input
First line of input comes a positive integer T(T<=10), indicating the number of test cases. Each test case contains three positive integer a,b and n(a<=10,b<=10,n<=30)
Output
Print one line containing an integer, i.e.F(n), for each test case.
Sample Input
2 1 2 3 1 3 6
Sample Output
3 24
//另一种解法----> 递归 #include<iostream> #include<cstdio> using namespace std; int main() { int f[30]={0},t,n,a,b,i; while(scanf("%d",&t)!=EOF) { while(t--) { memset(f,0,sizeof(f)); scanf("%d%d%d",&a,&b,&n); f[1]=a; f[2]=b; for(i=3;i<=n;i++) { if(i%2!=0) f[i]=f[i-1]+f[i-2]; //奇数 else f[i]=f[i-1]+f[i-2]+f[i-3]; //偶数 } printf("%d\n",f[n]); } } return 0; }