Python已知斐波那契数列 1、1、2、3、5、8、13、…,编写程序,输入一个正整数 n,输出 斐波那契数列的第 n 项。
时间: 2023-10-20 18:17:19 浏览: 45
以下是Python代码:
```python
def fibonacci(n):
if n <= 0:
return "请输入正整数"
elif n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
n = int(input("请输入一个正整数:"))
print("斐波那契数列的第", n, "项为:", fibonacci(n))
```
运行结果:
```
请输入一个正整数:7
斐波那契数列的第 7 项为: 13
```
相关问题
用Python已知斐波那契数列 1、1、2、3、5、8、13、…,编写程序,输入一个正整数 n,输出 斐波那契数列的第 n 项。
以下是使用Python编写的解决方案:
```python
def fibonacci(n):
if n <= 0:
print("请输入一个正整数")
elif n == 1:
return 1
elif n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
n = int(input("请输入正整数n:"))
print("斐波那契数列的第", n, "项为:", fibonacci(n))
```
运行程序后,用户需要输入一个正整数n,然后程序将输出斐波那契数列的第n项的值。如果用户输入的不是正整数,则程序会提示用户重新输入。
:已知斐波那契数列 1、1、2、3、5、8、13、…,编写程序,输入一个正整数 n,输出 斐波那契数列的第 n 项
解法一:递归法
斐波那契数列的递推式为:F(n) = F(n-1) + F(n-2),其中 F(1) = F(2) = 1。
用递归的方式实现该递推式即可。
代码如下:
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
n = int(input("请输入正整数n:"))
print("斐波那契数列的第", n, "项为:", fibonacci(n))
解法二:循环法
用循环的方式计算斐波那契数列的第 n 项,避免了递归带来的重复计算。
代码如下:
n = int(input("请输入正整数n:"))
a = 1
b = 1
if n == 1 or n == 2:
print("斐波那契数列的第", n, "项为:", 1)
else:
for i in range(3, n+1):
c = a + b
a = b
b = c
print("斐波那契数列的第", n, "项为:", b)