打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
074.K阶斐波那契序列
#include <stdio.h>
#include <stdlib.h>
#define  enoughsize 100  //最大队列长度
typedef struct 
{
	int *base;     //初始化的动态分配存储空间
	int front;      //头指针,若队列不空,指向队列头元素
	int rear;      //尾指针,若队列不空,指向队列尾元素的下一个位置
}SqQueue;
int AddSum(int n,int *q)
{
	int sum=0;
	int i;
	for(i=0;i<n;i++)  sum+=q[i];
	return sum;
}

void main()
{
	SqQueue Q;
	int k,max,i,n,*store;
	printf("请输入斐波那奇的阶数:");
	scanf("%d",&k);
	printf("请输入序列中允许的最大数:");
	scanf("%d",&max);
	Q.base=(int*)malloc(k*sizeof(int));
	store=(int*)malloc(enoughsize*sizeof(int));
	if((!Q.base)||(!store))
	{
		printf("Error!");
		return;
	}
	for(i=0;i<k;i++)
	{
		store[i]=0;
		Q.base[i]=0;
	}
	store[k-1]=1;
	Q.base[k-1]=1;   //初始化fib序列
	store[k]=AddSum(k,Q.base);
	Q.front=0;
	Q.rear=k-1;
	n=k;
	while(store[n]<=max)
	{
		Q.rear=(Q.rear+1)%k;
		Q.base[Q.rear]=store[n];
		n++;
		store[n]=AddSum(k,Q.base);
	}
	printf("The first %d%s%d%c%s",n," numbers are less than ",max,'.',"\n");
	printf("The numbers are:\n");
	for(i=0;i<n;i++)  printf("%d%c",store[i],' ');
	printf("\n");
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
斐波那契
「算法篇」:浅谈何为递归算法?
计算机当中的函数,用C语言实现函数的定义,对简化程序非常重要
队列的基本操作
迭代法求斐波那契函数
邻接矩阵表示图的深度优先搜索和广度优先搜索(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服