开发者学堂课程【Python入门 2020年版:求斐波那契数列数列】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10278
求斐波那契数列数列
求斐波那契数列
求斐波那契数列中第 n 个数的值,n 是正整数。
说明:斐波那契数列是这样的一个数列: 1、1、 2、3、5、8、13、21、34、...第一个数和第二个数是1,从第三个数开始每个元素是前两个元素相加的和。
while True
n = int(input(‘请输入你想查询的是第几个数: ‘))
if n > 0;
brea
print(‘输入的值必须是正整数! ‘)
a= 1
b=1
i=2
if n == 1:
print(a)
elif n == 2:
print(b)
else:
while i < n:
#求斐波那契数列中第 n 个数的值,n 是正整数#求斐波那契数里第12个数(注意:变量太多,先将常量写出,再将常量换成变量)# 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89、144(这里指的是斐波那契数列)
num1 = 1
num2 = 2
讲解过程:
红色 num1 num1 = num2(num1以赋值给 num2)
绿色 num2 num2 = num2 + num2(不能写成 num2 = num1 + num2)
方法:在给一个变量替换 num1
a = num1
num1 = num2
num2 = a + num2
print(num2)
计算下一个数:
红色 num1
绿色 num2
# 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144num1 = 1
num2 = 1
a = num1
num1 = num2
num2 = a + num2
print( num2)
a = num1
num1 = num2
num2=a + num2
print(num2)
运行结果:
C:Users\chris\AppData\Local\Programs\Python\Python37\python. exe C:/Users/ chris/Desktop/Python 基础/Day05-字符↑
2
3Process finished with exit code 0
在往下:
num1 = 1
num2 = 1
a = num1
num1 = num2
num2 = a + num2
print( num2)
a = num1
num1 = num2
num2=a + num2
print(num2)
a = num1
num1 = num2
num2 = a + num2
print(num2)
运行结果:
C:Users\chris\AppData\Local\Programs\Python\Python37\python. exe C:/Users/ chris/Desktop/Python 基础/Day05-字符↑
2
3
5Process finished with exit code 0
若求下个数,则继续移。
规律:
第3个交换1
第4个交换2
第5个交换3
第n个交换n-2
求前12个数:
for i in range(0,12-2):
a = num1
num1 = num2
num2 = a + num2
print (num2)
运行结果:C: \Users\chris\AppData\Local\Programs \Python\Python37\python. exe C:/Users/chris/Desktop/Python 基础/Day05-字符2
3
5
8
13
21
34
55
89
144
Process finished with exit code 0
求第12个数:
for i in range(0, 12 - 2):
a = num1
num1 = num2
num2 = a+num2
print(num2)
运行结果:C:Users\chris\AppData\Local\Programs Python\Python37\python. exe C:/Users/chris/Desktop/Python 基础/Day05-字符
144Process finished with exit code 0
求第n个斐波那契数列:
#求斐波那契数列中第 n 个数的值,n 是正整数
n = int(input(‘请输入您要第几个斐波那契数:’))
#求斐波那契数里第12个数# 1,1,2,3,5,8,13,21, 34, 55, 89, 144
num1 = 1
num2 = 1
#第3个交换1
#第4个交换2
#第5个交换3
#第 n 个交换 n-2for i in range(0, 12 - 2):
a = num1
num1 = num2
num2 = a + num2
print (num2)
运行结果:
C:Users\chris\AppData\Local\Programs Python\Python37\python. exe C:/Users/chris/Desktop/Python 基础/Day05-字符
请输入您的第几个斐波那数:13
233Process finished with exit code 0
讨论第一个和第二个:
# 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144num1 = 1
num2 = 1
#第3个交换1
#第4个交换2
#第5个交换3
# 第 n 个交换 n-2for i in range(0, n - 2):
a = num1
num1 = num2
num2 = a + num2
print(num2)
运行结果1:
C: \Users\chris\AppData\Local\Programs \Python\Python37\python. exe C:/Users/chris/Desktop/Python 基础/Day05-字符
请输入您的第几个斐波那数:1
1Process finished with exit code 0
运行结果2:
C: \Users\chris\AppData\Local\Programs \Python\Python37\python. exe C:/Users/chris/Desktop/Python 基础/Day05-字符
请输入您的第几个斐波那数:2
1
Process finished with exit code 0
总结:斐波那契数列就是一个数跟下一个数替换的问题