📄 k
字号:
// k阶费那波契序列.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <stdlib.h>
typedef struct QNode{
int data;
struct QNode * next;
}QNode,* QueuePtr;
typedef struct{
QueuePtr front;
QueuePtr rear;
}SqQueue,* LinkQueue;
int main()
{
QueuePtr Q=NULL;
int k,max;
void Fibonacci(int,int,QueuePtr);
QueuePtr CreatQueue(int);
printf("请输入斐波那契序列阶数k和最大值max:");
scanf("%d%d",&k,&max);
Q=CreatQueue(k);
Fibonacci(k,max,Q);
printf("\n");
return 0;
}
void Fibonacci(int k,int max,QueuePtr R)
{
int i,sum,n=k,data=0;
QNode * p,*q;
q=R;
for(i=1;i<k+1;i++)
{
if(i==k)
printf("%4d",1);
else
printf("%4d",0);
if(i%10==0)printf("\n");
};
while(data<=max)
{
p=q;
sum=0;
for(i=1;i<k+1;i++)//循环队列的和
{
sum+=p->data;
p=p->next;
};
q->data=data=sum;
q=q->next;
printf("%4d",data);
if((n+1)%10==0)printf("\n");
n+=1;
};
printf("\n");
printf("%d阶斐波那契序列前%d项小于等于%d,第%d项大于%d.\n",k,n-1,max,n,max);
}
QueuePtr CreatQueue(int k)
{
QNode *p,*q,*R;
int i;
R=q=(QNode *)malloc(sizeof(QNode));
for(i=1;i<k;i++)
{
p=(QNode *)malloc(sizeof(QNode));
q->data=0;
q->next=p;
q=p;
}
p->data=1;
p->next=R;
return R;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -