1 条题解
-
0
思路分析
1. 任务拆解:
- 读取落地次数n
- 计算球第n次落地时经过的总路程
- 计算第n次反弹的高度
- 按要求格式输出结果
2. 关键点分析:
- 初始高度为100米
- 每次落地后反弹高度为前一次的一半
- 总路程包括下落和反弹的过程
- 第n次落地时,经过了n次下落和(n-1)次反弹
- 第n次反弹高度是第n次落地后反弹的高度
3. 步骤规划:
- 设置初始高度h=100,总路程s=0
- 读取落地次数n
- 初始化计数器c=1
- 循环模拟每次落地过程:
- 累加下落高度到总路程
- 如果是第n次落地,输出总路程并跳出循环
- 计算反弹高度(h/2)
- 累加反弹高度到总路程
- 计数器加1
- 输出第n次反弹高度
4. 代码对应:
double h=100,s=0; cin>>n;→ 设置初始高度并读取落地次数int c=1;→ 初始化落地次数计数器while(true)→ 无限循环模拟落地过程s+=h;→ 累加下落高度if(c==n)→ 判断是否第n次落地cout<<"length="<<fixed<<setprecision(4)<<s<<endl;→ 格式化输出总路程h/=2.0;→ 计算反弹高度s+=h;→ 累加反弹高度c++;→ 落地次数加1cout<<"high="<<fixed<<setprecision(4)<<h/2.0;→ 格式化输出反弹高度
- 1
信息
- ID
- 1380
- 时间
- 1000ms
- 内存
- 12MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 316
- 已通过
- 144
- 上传者