有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
问题分析:看规律可得,第二个数的分子等于前面数的分母分子之和,分母等于前面数的数的分子。
难点就在于如何把x,y的替换。在Python中可以直接 用x,y=y,z来替换。
我的想法:原理应该就是同时将x,y内存的指向交换。而x=y,y=z,它们有先后顺序,所以不能交换,需要第三方值。
具体可以自己去搜,这是赋值的底层逻辑。
# 设分母为y=2,分子为x=1
t = int(input("请输入项数:"))
y=2
x=1
sum=0
# 循环20次
for i in range(1,t+1):
sum+=y/x
x,y=y,x+y
# 保留两位小数
print("这个数列的前{}项的和是{:.2f}".format(t,sum))
答案:
请输入项数:20
这个数列的前20项的和是32.66