阿里云一个域名做两个网站,wordpress直接购买,商贸公司寮步网站建设,广告网站设计方案代码#xff1a;
注意k阶斐波那契序列定义#xff1a;第k和k1项为1#xff0c;前k - 1项为0#xff0c;从k项之后每一项都是前k项的和
例如#xff1a;k2时#xff0c;斐波那契序列为#xff1a;0,1,1,2,3,5,8,13...
k3时#xff0c;斐波那契序列为#xff1a;0,0,…代码
注意k阶斐波那契序列定义第k和k1项为1前k - 1项为0从k项之后每一项都是前k项的和
例如k2时斐波那契序列为0,1,1,2,3,5,8,13...
k3时斐波那契序列为0,0,1,1,2,4,7,13,24...
#include stdio.h
#include stdlib.htypedef struct Queue
{int data[100];//数据int front;//头指示器int rear;//尾指示器
} SeqQueue;void Initqueue(SeqQueue*Q);//初始化循环队列
void Compute(int max,int k,SeqQueue*Q);//计算斐波那契数列
void Printfqueue(SeqQueue*Q,int k);//输出最后k项int main()
{SeqQueue queue;int Max,K;Initqueue(queue);//初始化循环队列scanf(%d %d,Max,K);//输入约定的常数与阶数Compute(Max,K,queue);//计算斐波那契数列Printfqueue(queue,K);//输出最后k项return 0;
}/*初始化循环队列*Q被初始化的队*/
void Initqueue(SeqQueue*Q)
{Q-frontQ-rear0;
}/*计算斐波那契数列 f(0)到f(n);*max: f(n)max,f(n1)max*k: 要求输出的最后 k 项*Q目标循环队列*/
void Compute(int max,int k,SeqQueue*Q)
{int sum10,sum21;//此时sum1是前k-1个数的和sum2是前k个数和Q-reark-1;for(int i0; ik-1; i){Q-data[i]0;//前k-1个数置为0}Q-data[k-1]1;//第k个数为1while(!(sum2maxsum1max))//sum1是f(n),sum2是f(n1){int tQ-data[Q-front],m,n;sum1sum2;//下一个sum1等于sum2nQ-rear(Q-rear1)%k;//形成只有k个数据的循环队列Q-data[Q-rear]sum1;//入栈的是前k个数之和sum2sum2-tsum1;//下一个sum2 原来的sum2 - 队头t 新增的队尾sum1mQ-front(Q-front1)%k;//队头后移}
}/*输出最后k项*Q:目标队列*k要求的项数*/
void Printfqueue(SeqQueue*Q,int k)
{for(int iQ-front; i!Q-rear; i){ii%k;printf(%d ,Q-data[i]);}printf(%d,Q-data[Q-rear]);//特殊处理
}