单纯考逻辑
题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(n<=10)
输入描述:
一行,一个整数n (1<=n<=10)。
输出描述:
输出两个浮点数ans1,ans2。ans1为第n次落地时,共经过的距离;ans2为第n次反弹的高度。答案应与标准答案误差小于1e-5。两个数间以空格相间。
输入例子1:
1
输出例子1:
100.000000 50.000000
输入例子2:
10
输出例子2:
299.609375 0.097656
//第一次落地比较特殊单独计算,因为路径只有下落,没有反弹
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;//1~10
scanf("%d",&n);
//算第n次落地时,共经过的距离
double sum=100;
double cur_h=50;
for(int i = 1;i < n;i++){
sum+=2*cur_h;
cur_h/=2;
}
printf("%.6f %.6f",sum,cur_h);
return 0;
}
原文链接: https://www.cnblogs.com/10134dz/p/13709053.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/203058
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!