Problem E
数列
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
已知k阶裴波那契数列的定义为f0=0,f1=0,…,fk-2=0, fk-1=1; fn=fn-1+fn-2+…+fn-k,n=k,k+1,…,试编写求k阶裴波那契数列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。
输入:
输入两个正整数k m(其中1<k<m,本题所有数据都在长整形数据的范围之内)
输出:
输出k阶裴波那契数列的第m项值fm。
输入样例:
2 3
输出样例:
2
#include <iostream>
using namespace std;
int k, m;
int fibnaci(int k, int m)
{
if(m < k)
{
if(m == k - 1)
{
return 1;
}
else
{
return 0;
}
}
else
{
int res = 0;
for (int i = m - 1; i >= m - k; --i)
{
res += fibnaci(k, i);
}
return res;
}
}
int main()
{
cin>>k>>m;
cout<<fibnaci(k,m)<<endl;
return 0;
}