⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.c

📁 Fibonacci函数
💻 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 + -