根据斐波那契数列的定义,F(0)=0,F(1)=1, F(n)=F(n–1)+F(n–2)(n≥2),根据用户输入的整数n,计算并输出斐波那契数列前n项。(利用递归和非递归两种方法)
时间: 2024-05-02 07:20:38 浏览: 54
好的,这是一个关于计算斐波那契数列的问题。可以采用递归和非递归两种方法求解。
非递归方法可以使用循环实现,具体过程如下:
```
#include <stdio.h>
// 计算斐波那契数列前n项,非递归方法
void fibonacci(int n) {
int i, a = 0, b = 1, sum;
for(i = 0; i < n; i++) {
printf("%d ", a);
sum = a + b;
a = b;
b = sum;
}
}
int main() {
int n;
printf("请输入整数n: ");
scanf("%d", &n);
fibonacci(n);
return 0;
}
```
递归方法可以直接使用递归函数实现,具体过程如下:
```
#include <stdio.h>
// 计算斐波那契数列前n项,递归方法
int fibonacci(int n) {
if(n <= 1) {
return n;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n, i;
printf("请输入整数n: ");
scanf("%d", &n);
printf("斐波那契数列前%d项为:", n);
for(i = 0; i < n; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
希望能够解决你的问题。
阅读全文