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

郭哥代码:

def getTotal(times,h):
    global curh
    if times != 0:
        #print("curh===",id(curh))
        curh = h / 2  # 目前的高度
        print("curh1===", id(curh))
        times = times-1
        curh = getTotal(times, curh)
        print("curh===", curh)
    return curh


if __name__ == '__main__':
    times = 10  # 弹跳次数
    h = 100  # 总高度
    a = getTotal(times, h)
    print("第{}次弹跳后高度为{}!".format(times, a))

def gettotal(times,h):
    curh = h/2;
    if(times!=1):
        times = times-1;
        print("cur000==", curh)
        return gettotal(times, curh)
        print("cur111==", curh)
    return curh


if __name__ == '__main__':
    times =10;
    h = 100;
    #gettotal(times,h);
    print("curh===",gettotal(times,h))

cur000== 50.0
cur000== 25.0
cur000== 12.5
cur000== 6.25
cur000== 3.125
cur000== 1.5625
cur000== 0.78125
cur000== 0.390625
cur000== 0.1953125
curh=== 0.09765625

注:没有执行 print(“cur111==”, curh)

错误版本:
def gettotal(times,h):
    curh = h/2;
    if(times!=0):
        print("cur000==", curh)
        times = times-1;
        gettotal(times, curh)
        print("cur111==", curh)
    return curh


if __name__ == '__main__':
    times =10;
    h = 100;
    #gettotal(times,h);
    print("curh===",gettotal(times,h))

cur000== 50.0
cur000== 25.0
cur000== 12.5
cur000== 6.25
cur000== 3.125
cur000== 1.5625
cur000== 0.78125
cur000== 0.390625
cur000== 0.1953125
cur000== 0.09765625
cur111== 0.09765625
cur111== 0.1953125
cur111== 0.390625
cur111== 0.78125
cur111== 1.5625
cur111== 3.125
cur111== 6.25
cur111== 12.5
cur111== 25.0
cur111== 50.0
curh=== 50.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值