信息学奥赛一本通 1085:球弹跳高度的计算 | OpenJudge NOI 1.5 20
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1085:球弹跳高度的计算 | OpenJudge NOI 1.5 20
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【題目鏈接】
ybt 1085:球彈跳高度的計(jì)算
OpenJudge NOI 1.5 20:球彈跳高度的計(jì)算
【題目考點(diǎn)】
1. 循環(huán)
【解題思路】
1. 使用循環(huán)描述球的彈跳過程
2. 數(shù)學(xué)計(jì)算
分析各次落地前彈跳的距離
設(shè)球的初始高度是hhh
- 第1次下落hhh,第1次落地,第1次反彈h2\frac{h}{2}2h?
- 第2次下落h2\frac{h}{2}2h?,第2次落地,第2次反彈h4\frac{h}{4}4h?
- 第3次下落h4\frac{h}{4}4h?,第3次落地,第3次反彈h8\frac{h}{8}8h?
… - 第i次下落h2i?1\frac{h}{2^{i-1}}2i?1h?,第i次落地,第i次反彈h2i\frac{h}{2^i}2ih?
第10次落地之前,共經(jīng)歷了10次下落,9次反彈,將下落和反彈的距離加和,設(shè)總距離為s:
s=h+h2+h2+h4+h4+...+h29+h29=h+2(h2+h4+...+h29)=h+h+h2+h4+...+h28\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?? - 根據(jù)等比序列加和公式:
Sn=a11?qn1?qS_n = a_1\frac{1-q^n}{1-q}Sn?=a1?1?q1?qn?
可以得到
s=h(1+1+12+14+...+128)=h(1+1?(12)91?12)=h(3?128)\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?)? - 根據(jù)規(guī)律可知,第10次反彈的距離為:h210\frac{h}{2^{10}}210h?
【題解代碼】
解法1:使用循環(huán)描述球的運(yùn)行過程
#include <bits/stdc++.h> using namespace std; int main() {double h;//彈跳高度cin>>h;double sum = h;//sum:總距離,初始值設(shè)為h,即第一次下落的距離為hfor(int i = 2; i <= 10; ++i)//i表示第幾次落地{h /= 2;//落地后彈跳高度變?yōu)樵瓉淼囊话搿在運(yùn)算后表示第i-1次落地后彈起的高度,也就是第i次下落的高度。sum += 2 * h;//球彈起距離h,下落距離h,經(jīng)過2h距離后再次落地。運(yùn)行這句后,此時(shí)sum表示第i次落地時(shí)小球經(jīng)過的距離}//此時(shí)sum為第10次落地時(shí)經(jīng)過的距離,h為第10次下落的高度,第10次彈起的高度應(yīng)該為h/2cout<<sum<<endl<<h/2<<endl;return 0; }解法2:根據(jù)數(shù)學(xué)推導(dǎo)輸出結(jié)果
在上述【解題思路】中得到結(jié)論:
球彈跳的總距離:h(3?128)h(3 - \frac{1}{2^8})h(3?281?)
第10次彈起的距離:h210\frac{h}{2^{10}}210h?
總結(jié)
以上是生活随笔為你收集整理的信息学奥赛一本通 1085:球弹跳高度的计算 | OpenJudge NOI 1.5 20的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通 2029:【例4.15
- 下一篇: 信息学奥赛一本通(1323:【例6.5】