一个球从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; }