解题思路:
这道题要求使用循环队列求斐波那契数列不大于max的最后k项的值。
循环列表通常情况包含以下结构:
typedef struct node{
int *data;
int front;
int rear;
int N;
}Queue;
void CreatQueue(Queue *Q, int n)
void AddElem(Queue *Q, int num)
int Pop(Queue *Q)
int Push(Queue *Q)
这道题,难道是不难,但是感觉这题有毒,按我的理解好像是要输出斐波那契数列不大于max的最后n项,也就是输入(14,3)应该输出(5,8,13),这是我写的代码可以实现的。结果提交后显示PE。去网上参考了一下别人AC的代码,发现他们输入(14,3)输出(4,7,13)然而AC了。
这就很迷惑,可能是我语文不好没读懂题?好吧,为了通过只能先用别人的一段核心函数了(FAKE_Fibonacci),一部分我一开始写的函数主函数中没有用到。
具体操作见代码,代码中有部分注释。
题解代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
//定义一个循环队列,队列中要有一个空储存单元用于判空
int *data;//int型数组data
int front;
int rear;
int N;
}Queue;
void CreatQueue(Queue *Q, int n){
//N值不定,动态申请
Q->N = n+1;
Q->data = (int*)malloc(sizeof(int