:已知斐波那契数列 1、1、2、3、5、8、13、…,编写程序,输入一个正整数 n,输出 斐波那契数列的第 n 项
时间: 2023-12-28 22:02:19 浏览: 140
解法一:递归法
斐波那契数列的递推式为: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)
相关问题
题目描述:已知斐波那契数列1、1、2、3、5、8、13、…,编写程序,输入一个正整数n,输出斐波那契数列的第n项。
解题思路:使用循环迭代的方式求斐波那契数列的第n项。
步骤如下:
1.定义变量a、b、c分别表示斐波那契数列中第n-2、第n-1、第n项的值,初始值分别为1、1、0。
2.从第3项开始,循环迭代n-2次,每次将a、b的值分别赋给b、c,再将b、c的和赋给c。
3.最后返回c的值即是斐波那契数列的第n项。
代码如下:
已知斐波那契数列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
```
阅读全文