问题
一个球从100米处降落,每次落地后都反弹回原高度的一半,再落下,求它在第十次的时候,共经过的路程为多少米,第十次反弹高度为多少米。
方法
使用函数def calhigh(n)完成代码的进行,利用公式o_h = 100*(1/2)**n计算第n和n+1次反弹的高度,利用for i in range(1,n+1)完成循环计算,利用if判断语句得出当n=1时,输出“第1次总共经历100米高度为零”,当n>1时,输出“第n和n+1次共经历多少米”。
代码清单
def calhigh(n):
o_h = 100*(1/2)**n
print(f第{n}次的高度为{o_h}’)
return o_h
h1 = 100
n = int(input(‘请输入次数:’))
sum = h1
for i in range(1,n+1):
if n == 1:
print(’总共经历了100米,高度为0米’)
else:
h1 = 2*calhigh(i)
sum += h1
print(f’总共经历了{sum}米’)
结语
使用函数def calhigh(n),for x in ...和if循环语句完成了求小球下弹起的高度与路程的问题,通过实验证明,该方法有效。