一球从h米的高度自由落下,每次落地后又反跳回原高度的一半,再落下。求它在第n次落

一球从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)