递归实现n个斐波那契数列
时间: 2023-07-13 15:40:43 浏览: 91
可以使用递归来实现斐波那契数列,代码如下:
```python
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
# 测试代码
for i in range(10):
print(fibonacci(i))
```
在这个递归函数中,我们首先判断了n是否小于等于1,如果是,直接返回n。这是因为当n等于0或1时,斐波那契数列的值就是n本身。如果n大于1,我们就递归地调用函数,计算出n-1和n-2的斐波那契数列值,然后将它们相加并返回结果。注意,这种方法的时间复杂度是指数级别的,所以对于大的n可能会很慢。
相关问题
递归实现n个斐波那契数列。
以下是递归实现n个斐波那契数列的Python代码:
```python
def fibonacci(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib_list = fibonacci(n-1)
fib_list.append(fib_list[-1] + fib_list[-2])
return fib_list
```
在这个代码中,我们首先对特殊情况进行处理:如果n为0则返回空列表,如果n为1则返回[0],如果n为2则返回[0,1]。如果n大于2,则调用`fibonacci(n-1)`来获取前n-1个斐波那契数,并将最后两个数相加来得到第n个数。最后,我们将新的斐波那契数添加到列表中并返回整个列表。
递归实现n个斐波那契数列c语言
可以使用递归来实现斐波那契数列,C语言代码如下:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1) {
return n;
}
else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int i;
for (i = 0; i < 10; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
```
与前面Python的代码类似,我们首先判断了n是否小于等于1,如果是,直接返回n。然后,如果n大于1,我们就递归地调用函数,计算出n-1和n-2的斐波那契数列值,然后将它们相加并返回结果。注意,在C语言中,要使用printf函数来打印输出结果。
需要注意,这种递归方法虽然简单易懂,但对于大的n可能会非常慢,因为它的时间复杂度是指数级别的。实际应用中,我们应该尽量避免使用递归来实现斐波那契数列。
阅读全文
相关推荐













