.编写一个函数计算斐波那契数列的第n个数,请分别通过递归和非递归两种方式实现函数。 在主程序中完成:输入一个数n,调用函数输出斐波那契数列的前n个数。
时间: 2024-02-17 22:03:54 浏览: 78
好的,这是一个递归和非递归两种方式实现斐波那契数列的第n个数的代码,您可以参考一下:
```python
# 递归方式计算斐波那契数列的第n个数
def fibonacci_recursive(n):
if n <= 0:
return 0
elif n == 1 or n == 2:
return 1
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
# 非递归方式计算斐波那契数列的第n个数
def fibonacci_iterative(n):
if n <= 0:
return 0
elif n == 1 or n == 2:
return 1
else:
fib1 = 1
fib2 = 1
for i in range(3, n+1):
fib = fib1 + fib2
fib1 = fib2
fib2 = fib
return fib2
# 主程序
n = int(input("请输入一个数n:"))
print("递归方式计算斐波那契数列的前n个数:")
for i in range(1, n+1):
print(fibonacci_recursive(i), end=" ")
print("\n非递归方式计算斐波那契数列的前n个数:")
for i in range(1, n+1):
print(fibonacci_iterative(i), end=" ")
```
您可以将以上代码复制到您的编辑器中运行,输入一个整数n,程序将会输出递归和非递归两种方式计算斐波那契数列的前n个数。
阅读全文