python练习(七)
高空坠物
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
分析:可以建立两个变量,分别计算他的里程数和最终反弹的高度
h = int(input("请输入起始高度:")) # 获取用户输入的起始高度
c = int(input("请输入次数:")) # 次数
tour = []
height = []
for i in range(1,c+1): #利用for in 对次数进行循环,次数的循环影响着总体的高度以及里程数
if i == 1:
tour.append(h)
else:
tour.append(2*h)
h /=2 #此时的高度等与前一次的高度一般
height.append(h)
s = sum(tour)
u = height[-1]
print("%d次经历的总路程为:%f"%(c,s))
print("第%d次的反弹高度为:%f"%(c,u))
结果:
猴子吃桃
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
分析:猴子吃桃,正面思考不好考虑,我们可以通过反面来思考,最后第十天只剩下一个桃子,相当于每天早上吃一个桃子再加上昨天剩下的桃子。
代码:
m = 1
for i in range(9,0,-1):
n = (m+1)*2
m = n
print(n)
结果: