信息学奥赛一本通 1085:球弹跳高度的计算 您所在的位置:网站首页 信息学奥赛一本通1032题答案 信息学奥赛一本通 1085:球弹跳高度的计算

信息学奥赛一本通 1085:球弹跳高度的计算

2024-01-01 07:27| 来源: 网络整理| 查看: 265

【题目链接】

ybt 1085:球弹跳高度的计算 OpenJudge NOI 1.5 20:球弹跳高度的计算

【题目考点】 1. 循环 【解题思路】 1. 使用循环描述球的弹跳过程 2. 数学计算

分析各次落地前弹跳的距离 设球的初始高度是 h h h

第1次下落 h h h,第1次落地,第1次反弹 h 2 \frac{h}{2} 2h​第2次下落 h 2 \frac{h}{2} 2h​,第2次落地,第2次反弹 h 4 \frac{h}{4} 4h​第3次下落 h 4 \frac{h}{4} 4h​,第3次落地,第3次反弹 h 8 \frac{h}{8} 8h​ …第i次下落 h 2 i − 1 \frac{h}{2^{i-1}} 2i−1h​,第i次落地,第i次反弹 h 2 i \frac{h}{2^i} 2ih​ 第10次落地之前,共经历了10次下落,9次反弹,将下落和反弹的距离加和,设总距离为s: s = h + h 2 + h 2 + h 4 + h 4 + . . . + h 2 9 + h 2 9 = h + 2 ( h 2 + h 4 + . . . + h 2 9 ) = h + h + h 2 + h 4 + . . . + h 2 8 \begin{aligned} s &= h + \frac{h}{2} +\frac{h}{2} + \frac{h}{4}+\frac{h}{4}+...+\frac{h}{2^{9}}+\frac{h}{2^{9}}\\&= h + 2(\frac{h}{2} + \frac{h}{4} + ... +\frac{h}{2^{9}}) \\ &= h + h + \frac{h}{2} + \frac{h}{4} + ... +\frac{h}{2^{8}} \end{aligned} s​=h+2h​+2h​+4h​+4h​+...+29h​+29h​=h+2(2h​+4h​+...+29h​)=h+h+2h​+4h​+...+28h​​根据等比序列加和公式: S n = a 1 1 − q n 1 − q S_n = a_1\frac{1-q^n}{1-q} Sn​=a1​1−q1−qn​ 可以得到 s = h ( 1 + 1 + 1 2 + 1 4 + . . . + 1 2 8 ) = h ( 1 + 1 − ( 1 2 ) 9 1 − 1 2 ) = h ( 3 − 1 2 8 ) \begin{aligned} s &= h(1 + 1 + \frac{1}{2} + \frac{1}{4} + ... +\frac{1}{2^{8}}) \\ &=h(1 + \frac{1-(\frac{1}{2})^9}{1-\frac{1}{2}})\\ &= h(3 - \frac{1}{2^8}) \end{aligned} s​=h(1+1+21​+41​+...+281​)=h(1+1−21​1−(21​)9​)=h(3−281​)​根据规律可知,第10次反弹的距离为: h 2 10 \frac{h}{2^{10}} 210h​ 【题解代码】 解法1:使用循环描述球的运行过程 #include using namespace std; int main() { double h;//弹跳高度 cin>>h; double sum = h;//sum:总距离,初始值设为h,即第一次下落的距离为h for(int i = 2; i double h; cin>>h; cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有