
4阶斐波那契序列如下:f0=f1=f2=0, f3=1,…,fi=fi-1+fi-2+fi-3+fi-4,
利用容量为k=4的循环队列,构造序列的前n+1项(f0, f1 , f2 ,… fn ),要求满足fn ≤200而fn+1 >200。
*/
1.源程序:
#include #include typedef struct{ int number; }Num; typedef struct{ Num *base; int front; int rear; }SqQueue; SqQueue InitQueue(SqQueue &S){ S.base = (Num *)malloc(4 * sizeof(Num)); if(!S.base)exit(0); S.front = 0; S.rear = 3; S.base[S.front].number = 0; S.base[S.front+1].number = 0; S.base[S.front+2].number = 0; S.base[S.front+3].number = 1; return S; } void ShowQueue(SqQueue S){ for(int i = 0; i < 4; i++){ printf("%d\",S.base[S.front+i].number); } } void FibOrder(SqQueue S){ while(S.base[S.rear].number <= 200){ S.rear = (S.rear + 1) % 4; S.base[S.rear].number = S.base[(S.front)%4].number+S.base[(S.front+1)%4].number+S.base[(S.front+2)%4].number+S.base[(S.front+3)%4].number; S.front = (S.front +1) % 4; printf("%d\",S.base[S.rear].number); } } void main(){ SqQueue Fib; Fib = InitQueue(Fib); printf("4阶斐波那契数列如下:\\n"); ShowQueue(Fib); FibOrder(Fib); } 2.运行窗口截图:
