一球从h米的高度自由落下,每次落地后又反跳回原高度的一半,再落下。求它在第n次落地时,共经过多少米,第n次反弹多高。
该回答引用GPT:
第n次落地时,共经过的米数为:h*(1+1/2+1/4+...+1/2^(n-1)),第n次反弹的高度为:h/2^(n-1)。
public double GetDistance(int n, double h)
{
double distance = 0;
for (int i = 0; i < n; i++)
{
distance += h / Math.Pow(2, i);
}
return distance;
}
public double GetHeight(int n, double h)
{
return h / Math.Pow(2, n - 1);
}
如还有疑问,可留言帮助解决。
if __name__ == "__main__":
h = int(input("请输出小球第一次高度h: "))
n = int(input("请输出小球弹跳的次数N: "))
harr = [h * (1 / 2) ** i for i in range(n + 1)]
total = harr[0] + sum(harr[1:-1]) * 2 + harr[-1]
last = harr[-1]
print(harr)
print(total)
print(last)