初学python算法100例-案例19 球高空落地 弹跳N次后高度计算
Posted 技术专家团-小兔子编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学python算法100例-案例19 球高空落地 弹跳N次后高度计算相关的知识,希望对你有一定的参考价值。
题目:计算N次后高度
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
解法1 列表
程序分析
通过列表将每次的高度以及反弹高度添加
程序实现
sum = []
height = []
hei = 100.0 # 起始高度
for i in range(1, 11):
# 从第二次开始,落地时的距离应该是反弹高度乘以2(弹到最高点再落下)
if i == 1:
sum.append(hei)
else:
sum.append(2*hei)
hei /= 2
height.append(hei)
print('总高度:tour = %.3f'%sum(sum))
print('第10次反弹高度:height = %.3f'%height[-1])
运行结果
解法2 递归
程序分析
通过递归调用计算高度
程序实现
def height(n):
if n==0 :
return 100
else:
return height(n-1)/2
sum1=0
count=10
for i in range(0,count):
if i==0:
sum1=sum1+height(i)
else:
sum1=sum1+2*height(i)
#print(height(i))
print('总高度:tour = %.3f'%sum1)
print('第10次反弹高度:height = %.3f'%height(10))
运行结果
还有更多其他的解法,欢迎一起交流学习
以上是关于初学python算法100例-案例19 球高空落地 弹跳N次后高度计算的主要内容,如果未能解决你的问题,请参考以下文章