初学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次后高度计算的主要内容,如果未能解决你的问题,请参考以下文章

初学python算法100例-案例28 逆序输出每位数字

初学python算法100例-案例23 输出菱形

初学python算法100例-案例9 间隔1秒输出结果

初学python算法100例-案例29 判断回文数

初学python算法100例-案例25 阶层求和 学完你也会

初学python算法100例-案例12 求水仙花数 多种不同解法