【题目链接】

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

【题目考点】

1. 循环

【解题思路】

1. 使用循环描述球的弹跳过程

2. 数学计算

分析各次落地前弹跳的距离
设球的初始高度是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次落地之前,共经历了10次下落,9次反弹,将下落和反弹的距离加和,设总距离为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​​
  • 根据等比序列加和公式:
    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​)​
  • 根据规律可知,第10次反弹的距离为:h210\frac{h}{2^{10}}210h​

【题解代码】

解法1:使用循环描述球的运行过程

#include <bits/stdc++.h>
using namespace std;
int main()
{double h;//弹跳高度cin>>h;double sum = h;//sum:总距离,初始值设为h,即第一次下落的距离为hfor(int i = 2; i <= 10; ++i)//i表示第几次落地{h /= 2;//落地后弹跳高度变为原来的一半。h在运算后表示第i-1次落地后弹起的高度,也就是第i次下落的高度。sum += 2 * h;//球弹起距离h,下落距离h,经过2h距离后再次落地。运行这句后,此时sum表示第i次落地时小球经过的距离}//此时sum为第10次落地时经过的距离,h为第10次下落的高度,第10次弹起的高度应该为h/2cout<<sum<<endl<<h/2<<endl;return 0;
}

解法2:根据数学推导输出结果

在上述【解题思路】中得到结论:
球弹跳的总距离:h(3−128)h(3 - \frac{1}{2^8})h(3−281​)
第10次弹起的距离:h210\frac{h}{2^{10}}210h​

#include <bits/stdc++.h>
using namespace std;
int main()
{double h;cin>>h; cout<<h * (3 - 1 / pow(2, 8))<<endl<<h / pow(2, 10)<<endl;return 0;
}

信息学奥赛一本通 1085:球弹跳高度的计算 | OpenJudge NOI 1.5 20相关推荐

  1. 信息学奥赛一本通 1108:向量点积计算 | OpenJudge NOI 1.6 09

    [题目链接] ybt 1108:向量点积计算 OpenJudge NOI 1.6 09:向量点积计算 [题目考点] 1. 数组 [题解代码] 解法1: #include <bits/stdc++ ...

  2. 大家好!我是屁孩君儿子,今天给大家带来一个 1085 球弹跳高度的计算

    求关注! 代码如下: #include<bits/stdc++.h> using namespace std; int main() {double h,sum=0,q=0;int i;c ...

  3. 信息学奥赛一本通 1171:大整数的因子 | OpenJudge NOI 1.6 13:大整数的因子

    [题目链接] ybt 1171:大整数的因子 OpenJudge NOI 1.6 13:大整数的因子 [题目考点] 1. 高精度 考察:高精模低精 高精度计算讲解 [解题思路] 先把参与运算的数字当成 ...

  4. 信息学奥赛一本通 1149:最长单词2 | OpenJudge NOI 1.13 16

    [题目链接] ybt 1149:最长单词2 OpenJudge NOI 1.13 16:最长单词2 [题目考点] 1. 字符串遍历 2. 处理多个字符串 3. while(cin >> - ...

  5. 信息学奥赛一本通 1148:连续出现的字符 | OpenJudge NOI 1.9 11

    [题目链接] ybt 1148:连续出现的字符 OpenJudge NOI 1.9 11:连续出现的字符 [题目考点] 1. 字符串处理 2. 数值统计 [题解代码] 解法1:比较相邻字符 #incl ...

  6. 信息学奥赛一本通 1145:字符串p型编码 | OpenJudge NOI 1.7 31:字符串p型编码

    [题目链接] ybt 1145:字符串p型编码 OpenJudge NOI 1.7 31:字符串p型编码 [题目考点] 1. 字符串处理 [解题思路] 遍历字符串,设置变量curNum表示当前关注的数 ...

  7. 信息学奥赛一本通 1143:最长最短单词 | OpenJudge NOI 1.7 25

    [题目链接] ybt 1143:最长最短单词 OpenJudge NOI 1.7 25:最长最短单词 [题目考点] 1. 字符串处理 [解题思路] 思路1:将字符串分解为多个单词,而后求出各个单词的长 ...

  8. 信息学奥赛一本通 1137:加密的病历单 | OpenJudge NOI 1.7 12

    [题目链接] ybt 1137:加密的病历单 OpenJudge NOI 1.7 12:加密的病历单 [题目考点] 1. 字符串处理 [解题思路] 加密过程有三个工序:循环左移,逆序存储,大小写反转. ...

  9. 信息学奥赛一本通 1110:查找特定的值 | OpenJudge NOI 1.9 01

    [题目链接] ybt 1110:查找特定的值 OpenJudge NOI 1.9 01:查找特定的值 [题目考点] 1. 顺序查找 [题解代码] 解法1: #include <bits/stdc ...

最新文章

  1. [最近公共祖先(LCA)]
  2. php数组转为js json,php如何将数组转为json数组,php数组转为js数组
  3. Repository模式(转载)
  4. 使用分页插件PageHelper
  5. 如何优化 .NET Core 中的 lambda 查询表达式 ?
  6. OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
  7. 异步tcp通信——APM.Core 服务端概述
  8. JSON Schema
  9. C++制作植物大战僵尸
  10. 360全景拼接 opencv_全景拼接算法简介
  11. [buuctf.reverse] 144_[XMAN2018排位赛]easyvm 147_[XNUCA2018]Code_Interpreter
  12. 【软件工程师中级职称】学习总结
  13. 07 PCA(主成分分析)之梯度上升法
  14. 自媒体赚钱系列连载03:音乐人有收益自媒体平台大全
  15. 关于Windows7升级到Windows8喇叭出现红色叉号的问题
  16. 《实施Cisco统一通信管理器(CIPT1)》一2.5 跨越IP WAN的集群部署模型
  17. Fluent飞行器动导数计算方法
  18. 看完让你彻底理解 WebSocket 原理
  19. 硬盘数据恢复软件 去限制版
  20. 通过苹果设计和小米商业,重新理解互联网产品创新

热门文章

  1. Manjaro Linux 0.8.5 发布
  2. 《人类简史》作者:巨变将至!数据决定你未来是什么物种
  3. gson 不忽略空_java – Gson序列化字段只有在不为null或不为空
  4. python怎么用matplotlib_用Matplotlib在Python中绘制时间
  5. 代码规范 设计模式落地之路
  6. 图解 ElasticSearch 原理,太牛了
  7. 硬核干货,老曹解密“语音交互”背后的黑科技!
  8. DevOps是微服务的秘方
  9. 【JEECG技术文档】表单配置-树形表单
  10. 明晚8点,捷微团队QQ群公开课,讲解jeewx2.0版本maven环境的搭建入门!