Fibonacci序列实例,定义函数def fac1(n),能返回由斐波那契数列中前n个数组成的列表。 例如输入n=7,返回Fibonacci序列 [0,1,1,2,3,5,8]
时间: 2024-09-30 20:11:08 浏览: 47
Fibonacci序列是一个经典的数学序列,它的特点是每个数字(从第三个开始)都是前两个数字之和。对于给定的n,要生成包含前n个斐波那契数的列表,你可以使用以下递归或迭代的方式来定义`fac1(n)`函数:
**使用递归:**
```python
def fib_recursive(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib_list = fib_recursive(n - 1)
fib_list.append(fib_list[-1] + fib_list[-2])
return fib_list
def fac1(n):
return fib_recursive(n)
```
**使用迭代:**
这个版本更高效,因为递归会有重复计算的问题。
```python
def fib_iterative(n):
fib_list = [0, 1] if n >= 1 else []
while len(fib_list) < n:
fib_list.append(fib_list[-1] + fib_list[-2])
return fib_list[:n]
def fac1(n):
return fib_iterative(n)
```
当你调用`fac1(7)`时,这两个函数都会返回[0, 1, 1, 2, 3, 5, 8]。
阅读全文