刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

一个小球从n米高度自由落下,每次落地后反跳回原高度的一半,再落下。求第10次反弹多高,及初始落下到第10次反弹到最高点时(不含第十次落下距离)一共经历了多少米?

输入描述

输入一个正整数n

输出描述

(1)第10次反弹高度 

(2)一共经历了多少米(不含第十次落下距离)

输入

1024

输出

1
3069

使用微信搜索喵呜刷题,轻松应对考试!

答案:

br />(1)第10次反弹高度:1(2)一共经历了多少米(不含第十次落下距离):3069

解析:

【喵呜刷题小喵解析】
对于这个问题,我们可以使用递归来解决。

首先,我们定义两个函数,一个用于计算第n次反弹的高度,另一个用于计算初始落下到第n次反弹到最高点时(不含第n次落下距离)一共经历了多少米。

对于计算第n次反弹的高度,我们可以发现这是一个等比数列问题,每次反弹的高度是前一次的一半,即每次反弹的高度是前一次的1/2。因此,第n次反弹的高度可以表示为:

h_n = h_n-1 / 2

对于计算初始落下到第n次反弹到最高点时(不含第n次落下距离)一共经历了多少米,我们可以发现这是一个等差数列问题,每次反弹的距离是前一次的两倍(因为反弹后又要落下)。因此,我们可以使用等差数列的求和公式来计算。

sum_n = h_1 + h_2 + ... + h_n

但是,由于每次反弹后都要落下,所以实际的距离是每次反弹距离的两倍,即:

actual_sum_n = 2 * (h_1 + h_2 + ... + h_n)

但是,由于第n次反弹后没有落下,所以实际的距离应该是:

actual_sum_n = 2 * (h_1 + h_2 + ... + h_n-1)

现在,我们可以使用这两个函数来计算第10次反弹的高度和初始落下到第10次反弹到最高点时(不含第10次落下距离)一共经历了多少米。

对于第10次反弹的高度,我们可以直接调用函数来计算:

h_10 = h_9 / 2

对于初始落下到第10次反弹到最高点时(不含第10次落下距离)一共经历了多少米,我们可以使用等差数列的求和公式来计算前9次反弹的距离,然后再乘以2:

actual_sum_10 = 2 * (h_1 + h_2 + ... + h_9)

由于每次反弹的高度是前一次的1/2,所以我们可以使用等比数列的求和公式来计算前9次反弹的距离:

actual_sum_10 = 2 * (h_1 * (1 - (1/2)^9) / (1 - 1/2))

最后,我们可以将计算结果输出。
创作类型:
原创

本文链接:一个小球从n米高度自由落下,每次落地后反跳回原高度的一半,再落下。求第10次反弹多高,及初始落下到第

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share