郭哥代码:
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