一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
方法1:
思路:等比和公式
def solution1(n):
return 400*(1-1/2**n)-100 , 100*1/2**n
方法2:
def solution2(n):
sum = 0
res = 100
for i in range(n):
sum += 2*res
res /= 2
return sum - 100 ,res
方法2改用while:
def solution3(n):
sum = 0
res = 100
while n > 0:
sum += 2*res
res /= 2
n -= 1
return sum - 100 ,res
递归写反弹高度:
def recursion(n):
if n == 1:
return 50
else:
return recursion(n-1)/2