用递归函数实现fibonacci
时间: 2024-06-13 17:07:10 浏览: 74
以下是使用递归函数实现斐波那契数列的Python代码:
```python
def fibonacci(n):
if n <= 1:
return n
else:
return (fibonacci(n-1) + fibonacci(n-2))
```
在这个代码中,我们定义了一个名为`fibonacci`的函数,它接受一个整数`n`作为参数。如果`n`小于或等于1,函数将返回`n`。否则,函数将返回`fibonacci(n-1) + fibonacci(n-2)`的值,这是斐波那契数列中第`n`个数字的值。
例如,如果我们想要计算斐波那契数列中的前10个数字,我们可以这样做:
```python
for i in range(10):
print(fibonacci(i))
```
这将输出以下内容:
```
0
1
1
2
3
5
8
13
21
34
```
相关问题
利用递归函数实现斐波那契数列,并在主函数中打印数列前100项的值
好的,以下是代码实现:
```python
def fibonacci(n):
if n <= 1:
return n
else:
return (fibonacci(n-1) + fibonacci(n-2))
# 打印斐波那契数列前100项的值
for i in range(100):
print(fibonacci(i), end=" ")
```
解释一下代码:
- `fibonacci(n)` 是一个递归函数,用于计算斐波那契数列的第 n 项的值。
- 当 n 小于等于 1 时,函数返回 n,这是因为斐波那契数列的前两项是 0 和 1。
- 当 n 大于 1 时,函数返回前两项的和,即 `fibonacci(n-1) + fibonacci(n-2)`。
- 在主函数中,我们使用一个 for 循环打印斐波那契数列前 100 项的值。注意我们使用了 `end=" "`,这是为了确保每个数字之间用空格隔开,而不是换行。
希望能帮到你!
多选题】关于斐波那契数列,下列说法正确的是( ) A 斐波那契数列计算可用递归函数实现 B 斐波那契数列计算可用迭代函数实现 C 斐波那契数列用递归实现比迭代实现效率高 D 斐波那契数列用递归实现比迭代实现代码行数少
A. 斐波那契数列计算可以用递归函数实现 - 这种方法直观易懂,但对于较大的数字可能导致栈溢出,因为每次递归都会增加额外的函数调用开销。
B. 斐波那契数列计算也可用迭代函数实现 - 迭代通常是更高效的选择,因为它避免了不必要的递归调用,减少了时间和空间消耗。
C. 斐波那契数列用递归实现比迭代实现效率低 - 因为递归有重复计算的问题,而迭代则可以存储中间结果,提高效率。
D. 斐波那契数列用递归实现比迭代实现代码行数不一定少 - 递归通常会包含基本情况和递归调用两部分,而迭代可能会有循环结构,但从整体来看,迭代代码可能会更简洁一些。
正确的选项包括AB,C是错误的观点,D视具体情况而定。
阅读全文