在下列代码中添加斐波拉契数列递归求值:#include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 typedef struct Stack{ int data[MAXSIZE]; int top; }Stack; void push(Stack *s,int x){ if(s->top==MAXSIZE-1){ printf("栈已满"); }else s->data[++s->top]=x; } int pop(Stack *s){ if(s->top==-1){ printf("栈已空"); return -1; }else return s->data[s->top--]; } void pop_k(Stack *s, int k){ if(k == 0) return; printf("出栈%d:\n",pop(s)); pop_k(s, k-1); } int main(){ Stack s; int m,n; printf("输入元素个数:"); scanf("%d",&m); printf("输入元素:"); for(int i=0;i<m;i++){ scanf("%d",&n); push(&s,n); } int k; printf("输入弹出元素个数:"); scanf("%d",&k); pop_k(&s, k); return 0; }
时间: 2024-01-06 18:05:06 浏览: 82
递归求斐波那契.cpp
在该代码中添加斐波拉契数列递归求值的功能,可以在 main 函数中添加以下代码:
int fibonacci(int n) {
if(n == 0 || n == 1) return n;
return fibonacci(n-1) + fibonacci(n-2);
}
int main(){
Stack s;
int m,n;
printf("输入元素个数:");
scanf("%d",&m);
printf("输入元素:");
for(int i=0;i<m;i++){
scanf("%d",&n);
push(&s,n);
}
int k;
printf("输入弹出元素个数:");
scanf("%d",&k);
pop_k(&s, k);
// 添加斐波拉契数列递归求值
printf("斐波拉契数列前%d项为:\n", m);
for(int i=0; i<m; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
这样,程序就可以在输出栈元素之前,输出斐波拉契数列前 m 项的结果。
阅读全文