Python 练习实例20
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
程序分析:无
程序源代码:
Python 实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tour = []
height = []
hei = 100.0 # 起始高度
tim = 10 # 次数
for i in range(1, tim + 1):
# 从第二次开始,落地时的距离应该是反弹高度乘以2(弹到最高点再落下)
if i == 1:
tour.append(hei)
else:
tour.append(2*hei)
hei /= 2
height.append(hei)
print('总高度:tour = {0}'.format(sum(tour)))
print('第10次反弹高度:height = {0}'.format(height[-1]))
以上实例输出结果为:
总高度:tour = 299.609375 第10次反弹高度:height = 0.09765625
Python 100例
健健
459878163@qq.com
Python3 参考方案:
#!/usr/bin/python3 hei = 100 # 总高度 tim = 10 # 次数 height = [] # 每次反弹高度 for i in range(2,tim+1): # 计算第二次落地到第十次落地 hei /= 2 height.append(hei) print('第10次落地时,反弹%s高'%(min(height)/2)) # 第十次反弹为第十次落地距离的一半 print('第10次落地时,经过%s米'% (sum(height)*2+100)) # 总和加上第一次的 100输出结果:
健健
459878163@qq.com
james
214834750@qq.com
Python3 参考方案:
#!/usr/bin/python3 l=[] r=10 t=100 # 第一次落地经过距离 sum=0 while r>1: # 计算第二次落地到第十次落地每次的高度 t=t/2 r=r-1 l.append(t) for k in range(0,9): # 列表只有 9 条数据 if k==8: print(l[k]/2) # 第10次反弹高度 sum+=l[k] sum=sum*2 sum=sum+100 print(sum)james
214834750@qq.com
等一个人
252343465@qq.com
Python3 测试实例:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- sum = 0 total = 0 for i in range(1, 10): sum = (100 * 2) / (2 ** i) total += sum result = 100 + total tenth = 100 / (2 ** 10) print('第10次反弹高度: {}'.format(tenth)) print('第10次反弹后,一共经历的距离: {}'.format(result))等一个人
252343465@qq.com