📄 2.c
字号:
#include<stdio.h>
#include<stdlib.h>
struct queueNode { /*自引用结构*/
int data;
struct queueNode *nextPtr;
};
typedef struct queueNode QUEUENODE;
typedef QUEUENODE * QUEUENODEPTR;
/*函数原型*/
void printQueue(QUEUENODEPTR);
void enqueue(QUEUENODEPTR*,QUEUENODEPTR*,int);
int isEmpty(QUEUENODEPTR);
int Fibonacci(int);
main()
{
QUEUENODEPTR headPtr=NULL,tailPtr=NULL;
int k,max;
int item,item2,i,j;
printf("您想求几阶FIbonacci函数?");
scanf("%d",&k);
printf("请输入Fibonacci 函数的最大值:");
scanf("%d",&max);
for(i=0;i<=k+1;i++)
{
j=i+1;
item=Fibonacci( i);
item2=Fibonacci(j);
if(item<=max)
{
enqueue(&headPtr,&tailPtr,item);
if(item2>max)
break;
}
}
printQueue(headPtr);
return 0;
}
void enqueue(QUEUENODEPTR *headPtr,QUEUENODEPTR *tailPtr,int value)
{
QUEUENODEPTR newPtr;
newPtr=malloc (sizeof(QUEUENODEPTR));
if(newPtr!=NULL){
newPtr->data=value;
newPtr->nextPtr=NULL;
if(isEmpty(*headPtr))
*headPtr=newPtr;
else
(*tailPtr)->nextPtr=newPtr;
*tailPtr=newPtr;
}
else
printf("分配内存出错");
}
int isEmpty(QUEUENODEPTR headPtr)
{
return headPtr==NULL;
}
void printQueue(QUEUENODEPTR currentPtr)
{
if(currentPtr==NULL)
printf("函数为空.\n\n");
else{
printf("Fibonacci函数为:");
while(currentPtr!=NULL){
printf("%d--->",currentPtr->data);
currentPtr=currentPtr->nextPtr;
}
printf("NULL\n\n");
}
}
int Fibonacci(int n)
{
if(n==0||n==1)
return n;
else
return Fibonacci(n-1)+Fibonacci(n-2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -