递归求fabonacci数列
时间: 2023-07-13 21:37:11 浏览: 89
好的,递归求 Fibonacci 数列可以使用以下代码实现:
```
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
```
其中,当 `n` 小于等于 1 时,返回 `n`,否则返回 `fibonacci(n - 1) + fibonacci(n - 2)`,这样就能递归求出 Fibonacci 数列了。需要注意的是,递归求 Fibonacci 数列的时间复杂度为 $O(2^n)$,因此对于较大的 `n`,会出现严重的性能问题。
相关问题
c语言递归求斐波那契数列
以下是使用C语言递归求解斐波那契数列的代码:
```c
#include <stdio.h>
int fib(int n) {
if (n <= 1) {
return n;
}
return fib(n-1) + fib(n-2);
}
int main() {
int n;
printf("请输入要求第几个斐波那契数:");
scanf("%d", &n);
printf("第%d个斐波那契数为%d\n", n, fib(n));
return 0;
}
```
用递归求斐波那契数列
好的,斐波那契数列是指:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... ,其中每一项都是前两项的和。下面是用递归求斐波那契数列的代码示例:
```
int fibonacci(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
```
在这个递归函数中,如果输入的 n 为 1 或 2,则直接返回 1;否则,就递归调用函数本身来求解前两项之和,直到递归到 n=1 或 n=2 为止。需要注意的是,递归算法的时间复杂度较高,如果 n 很大,可能会导致栈溢出等问题。
阅读全文