Python读书笔记-每日一练-20190305|经典编程

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

程序编写:

# !/usr/bin/env python3
# Filename:falling.py

class gravity(object):
    def __init__(self):
        pass
    
    @staticmethod
    def fall(init_hight,times):
        #总路程,初始化为首次落地路程
        total_dis = init_hight;
        #下一次弹起高度
        next_hight = init_hight/2;
        for time in range(1,times+1):
            print("[落地次数%d]当前路程%.2f,弹起高度:%.2f"%(time,total_dis,next_hight))
            #计算每次弹起和落地路程
            total_dis += next_hight*2
            #修正下一次的高度
            next_hight /=2
            
        return {'TOTAL':total_dis,'HIGHT':next_hight}

if __name__ == '__main__':
    
    info = gravity.fall(100,10)
    print("降落总高度%.2f,下一次高度%.2f"%(info['TOTAL'],info['HIGHT']))

程序结果:

[落地次数1]当前路程100.00,弹起高度:50.00
[落地次数2]当前路程200.00,弹起高度:25.00
[落地次数3]当前路程250.00,弹起高度:12.50
[落地次数4]当前路程275.00,弹起高度:6.25
[落地次数5]当前路程287.50,弹起高度:3.12
[落地次数6]当前路程293.75,弹起高度:1.56
[落地次数7]当前路程296.88,弹起高度:0.78
[落地次数8]当前路程298.44,弹起高度:0.39
[落地次数9]当前路程299.22,弹起高度:0.20
[落地次数10]当前路程299.61,弹起高度:0.10
降落总高度299.80,下一次高度0.05

夹带私货:

  1. 练习Redis Key相关命令

你可能感兴趣的:(python,Python,python)