K阶斐波那契数列:数列第1项到第k-1项为0,第k项为1,之后从第(k+1)项开始每一项为前k项之和。
要求 :
编写求k阶斐波那契序列中前n+1项(f1,f2,…,fn)的算法,要求满足fn .max,而fn +1>max,max为某个约定的常数,注意:本题所用循环队列的容量为k,算法结束时,留在队列中的元素为所求k阶斐波那契序列中的最后k项。
思路:利用循环队列(令队列的长度为k)
- 输入数列的前k项,依次入队,
- 队首元素出队并输出
- t入队(t初始值为1)
- 对队列中所有元素求和为t
- 若t<=max执行步骤2
- 输出队列中余下的元素
代码如下
void Fibonacci(int k,int max)
{
Queue *q;
int i, item, t = 1,j = 0;
q = CreateQueue(k);
for(i = 0; i<k; i++)
if(i == k-1)
AddQ(

本文介绍了如何利用循环队列实现求解K阶斐波那契数列的方法,特别是当数列项不超过某个最大值max时。通过初始化队列并逐次进行入队、出队及求和操作,可以得到满足条件的k阶斐波那契序列。文章提供了一段C语言实现的代码示例,该代码灵活地根据数列阶数动态调整队列容量。
最低0.47元/天 解锁文章
717





