20球落体与反弹问题

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

class Ball():
	"""docstring for ball"""
	#初始化:第1次反弹的高度:50,第1次下落到地面时经过路程:100
	def __init__(self, h_1 = 50,l_1 = 100):
		self.h = h_1
		self.l = l_1
	
	#第n次下落后的高度和经过的路程
	def result(self,time):
		self.time = time
		if self.time == 1:
			return self.l,self.h

		#每下落1次,高度变成原来的一半,而经过的路程为每一次的高度之和
		for i in range(1,self.time):	
			self.l += self.h * 2
			self.h = self.h * 0.5

		return self.l,self.h

ball = Ball()
time = int(input('求第几次?'))
r = ball.result(time)
print('第{}次下落经过的路程为{}m,第{}次反弹的高度为{}m'.format(ball.time,r[0],ball.time,r[1]))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值