一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。
求它在第10次落地时,共经过多少米,第10次反弹多高。
a = float(input("请输入高度:"))
list = [a]
sum = 0
for i in range(10):
x = list[i] / 2
list.append(x)
for j in list[0:-1]:
sum += j * 2
print(list)
print("共经过%f米!" % (sum - a))
print("第十次反弹%f米!" % list[-1])
# 下面这样写测试正确性为0
list = [100]
sum = 0
for i in range(10):
x = list[i] / 2
list.append(x)
for j in list[0:-1]:
sum += j * 2
print(list)
print("共经过%f米!" % (sum - a))
print("第十次反弹%f米!" % list[-1]) 是我一根筋还是题目引导出错。为何写死高度,搞的写出来的代码通过不了用例
#include <stdio.h>
int main() {
//一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。
//求它在第10次落地时,共经过多少米,第10次反弹多高。
double ball;
double sum;
ball = 100;
for(int i = 1;i<=10;i++){
sum = sum + ball + (ball/2);
ball/=2;
}
printf("一共经历过%.2lf米\n",sum);
printf("第10次反弹的高度是%.2lf米\n",ball);
return 0;
}