0
点赞
收藏
分享

微信扫一扫

已知k阶斐波那契数列的定义为:f(0)-0,f(1)=0,···,f(k-2)=0,f(k-1)=1;f(n)=f(n-1)+f(n-2)+```=f(n-k) (n=k,k+1,···)求m项算法

素锦时年_1b00 2022-03-11 阅读 97

已知k阶斐波那契数列的定义为:f(0)-0,f(1)=0,···,f(k-2)=0,f(k-1)=1;f(n)=f(n-1)+f(n-2)+```=f(n-k) (n=k,k+1,···)试编写求k阶斐波那契数列的第m项值的函数算法,k和m均以参数的形式在参量表中出现。

采用递归的方法实现。

#include<iostream>
using namespace std;
int k_fib(int k, int m)
{
	//求k阶斐波那契数列的第m项值
	int f;
	if (m < k - 1)
		f = 0;
	else
		if (m == k - 1)
			f = 1;
		else {
			f = 0;
			for (int j = 1; j <= k; j++)
				f = f + k_fib(k, m - j);
		}
	return f;
}
void main()
{
	int i, j, fib;
	cout << "请输入斐波那契数列的阶数和项的序号:";
	cin >> i >> j;
	fib = k_fib(i, j);
	cout << i << "斐波那契数列的第" << j << "项值为:" << fib << endl;
}
举报

相关推荐

0 条评论