fib.cpp
来自「数据结构中的非波那起序列」· C++ 代码 · 共 47 行
CPP
47 行
#include <malloc.h>
#include <iostream.h>
#include <stdio.h>
#define maxsize 15
#define k 14
void main()
{
typedef struct
{
int *base;
int front,rear;
}fib;
fib Q;
Q.base=(int *)malloc(maxsize*sizeof(int));
Q.front=Q.rear=0;
printf("input max:");
int max=0;
scanf("%d",&max);
int a[100];
for(int i=0;i<maxsize-1;i++)
{
a[i]=Q.base[i]=0;
}
Q.base[k]=Q.base[k+1]=1;
Q.rear=k+1; int n=k+1; a[k-1]=a[k]=1;
while(Q.base[Q.rear]<max)
{ int j= (Q.rear+1) % (k+1);
a[n]= Q.base[Q.rear]*2- Q.base[j];
Q.base[j]=a[n];
Q.rear=j;
n++;
}
if(Q.base[Q.rear]>max)
n=n-2;
else
n=n-1;
if (max==1) {n=k;a[k]=1;}
if (max==0) { n=k-2;}
for(int x=0;x<=n;x++)
{printf("%d ",a[x]);}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?