#include <stdio.h>
typedef struct
{ int *queue; //动态数组的指针
int front , rear ;
} sequeuetp;
void InitQueue(sequeuetp &Q,int size) //队列初始化函数
{
Q.front = 0;
Q.rear = 0;
Q.queue = new int[size]; //动态分配
}
void main()
{
int k,n,max;
int f[1000]; //数组f用来保存Fibonacci序列计算的每一个结果
sequeuetp qu;
printf("请输入斐波那契序列的阶数:\n");
scanf("%d",&k);
printf("请输入最大数max:\n");
scanf("%d",&max);
InitQueue(qu,k); //初始化一个循环队列
for(int i=0;i<=k-2;i++)
{
f[i]=0;
qu.queue[i]=0;
}
qu.queue[k-1]=1;
qu.rear=k-1;
f[k-1] = 1;
n=k;
while(qu.queue[qu. rear]<max)
{
f[n]=0;
for(int j=0;j<k;j++)
f[n]=f[n]+ qu.queue[j]; //对循环队列里的最后k个数字进行相加保存到数组f中
qu.rear=(qu.rear +1) % k;
qu.queue[qu.rear]=f[n];
n++;
}
if(qu.queue[qu.rear]>max)
n=n-1;
if (max==1)
{
n=k;
f[k]=1;
}
printf("\n满足 fn<%d 且 fn+1>%d 的前 %d 项为:\n",max,max,n);
for(i = 0;i<n;i++) //输出
{
if(i%10==0) printf("\n\n");
printf("%10d",f[i]);
}
printf("\n\n");
}
没有合适的资源?快使用搜索试试~ 我知道了~
k阶斐波那契序列 循环队列实现C源码
共22个文件
pdb:3个
ncb:2个
pch:2个
5星 · 超过95%的资源 需积分: 49 89 下载量 193 浏览量
2009-04-24
23:42:09
上传
评论 1
收藏 303KB RAR 举报
温馨提示
k阶斐波那契序列,要求满足fn ≤max而fn+1 >max 。(循环队列的容量仅为k或k+1)数据结构又一经典必做编程题
资源推荐
资源详情
资源评论
收起资源包目录
Fibonacci.rar (22个子文件)
Fibonacci
FibonacciQuestion.ncb 49KB
FibonacciQuestion.cpp 1KB
Fibonacci.dsp 4KB
FibonacciQuestion.dsw 559B
Debug
vc60.pdb 52KB
vc60.idb 41KB
Fibonacci.ilk 174KB
FibonacciQuestion.pch 199KB
Fibonacci.pdb 417KB
Fibonacci.exe 160KB
FibonacciQuestion.exe 160KB
Fibonacci.pch 199KB
FibonacciQuestion.obj 5KB
FibonacciQuestion.pdb 417KB
FibonacciQuestion.ilk 168KB
Fibonacci.opt 48KB
FibonacciQuestion.dsp 3KB
Fibonacci.dsw 543B
Fibonacci.ncb 33KB
FibonacciQuestion.plg 1KB
Fibonacci.plg 1KB
FibonacciQuestion.opt 53KB
共 22 条
- 1
crystalever
- 粉丝: 3
- 资源: 54
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页