一球从100米高度*落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(n<=10)

单纯考逻辑

题目:

一球从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;
}
上一篇:23.Hibernate-基础.md


下一篇:【好好补题,因为没准题目还会再出第三遍!!】ACM字符串-组合数学(官方题解是数位DP来写)