斐波拉契数列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斐波拉契数列相关的知识,希望对你有一定的参考价值。
你应该很熟悉斐波那契数列,不是吗?现在谷学长不知在哪里搞了个山寨版斐波拉契数列,如下公式:
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)。
#include<iostream> using namespace std; int F(int a, int b, int n) { int sum = 0; if(n == 1) return a; else if(n == 2) return b; else if(n > 2) { if(n % 2 == 0) return F(a, b, n-1) + F(a, b, n-2) + F(a, b, n-3); else return F(a, b, n-1) + F(a, b, n-2); } } int main () { int x, i, c = 0; cin>>x; int a[x], b[x], n[x]; for(i = 0; i < x; i++) cin>>a[i]>>b[i]>>n[i]; while(c < x) { cout<<F(a[c], b[c], n[c])<<endl; c++; } return 0; }
以上是关于斐波拉契数列的主要内容,如果未能解决你的问题,请参考以下文章