Python3 (基础练习)有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

有一分数序列: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

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值