知斐波那契数列1、1、2、3、5、8、13、…,编写程序,输入一个正整数n,输出 斐波那契数列的第n项。
时间: 2023-05-26 21:03:19 浏览: 30
```python
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
n = int(input("请输入一个正整数: "))
print("斐波那契数列的第{}项为{}".format(n, fibonacci(n)))
```
运行结果:
```
请输入一个正整数: 8
斐波那契数列的第8项为21
```
相关问题
已知斐波那契数列1、1、2、3、5、8、13、…,编写程序,输入一个正整数n,输出 斐波那契数列的第n项。
```python
def Fibonacci(n):
if n < 1:
return None
if n == 1 or n == 2:
return 1
a = 1
b = 1
res = 0
for i in range(3, n + 1):
res = a + b
a = b
b = res
return res
n = int(input("请输入一个正整数:"))
print("斐波那契数列的第", n, "项是:", Fibonacci(n))
```
运行结果:
```
请输入一个正整数:10
斐波那契数列的第 10 项是: 55
```
:已知斐波那契数列 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)
阅读全文