问题 一个球从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循环语句完成了求小球下弹起的高度与路程的问题,通过实验证明,该方法有效。