python精彩编程200例百度_【python】编程语言入门经典100例--20

1 #题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

代码:

2

3 h = 0

4 li = []

5 for i in range(1,11):

6 s = 100/(2**(i-1))

7 li.append(s)

8

9 for x in li:

10 h += x

11 print(li)

12 print('球在第十次落地时,共经过了%.10f米,第10此反弹的高度是%.10f'%((h*2-100),li[-1]/2))

运行结果:

[root@HK code_100]# python code_20.py

[100.0, 50.0, 25.0, 12.5, 6.25, 3.125, 1.5625, 0.78125, 0.390625, 0.1953125]

球在第十次落地时,共经过了299.6093750000米,第10此反弹的高度是0.0976562500

[root@HK code_100]#

代码解释:

2

3 h = 0 #初始化总高度为0

4 li = [] #初始化每次落地的高度列表为空

5 for i in range(1,11): #遍历10此落地

6 s = 100/(2**(i-1)) #s为每次落地的高度(100,50,25,12.5.........)

7 li.append(s) #将每次落地的高度放入列表li

8

9 for x in li: #遍历这个高度列表

10 h += x #将每次落地的高度累加

11 print(li) #打印以便验证这个高度list

12 print('球在第十次落地时,共经过了%.10f米,第10此反弹的高度是%.10f'%((h*2-100),li[-1]/2))

#总共经过的米数是列表累加的两倍减去100(每个过程包括弹起和落地两部分距离,

#第一次落地没有之前的弹起,所以减去100),第十次落地后弹起的距离,是第十次落地的距离除以2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值