球弹跳高度的计算
题目描述
一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。
编程计算气球在第 10 10 10 次落地时,共经过多少米?第 10 10 10 次反弹多高?
输入格式
输入一个整数 h h h,表示球的初始高度。
输出格式
输出包含两行:
第 1 1 1 行:到球第 10 10 10 次落地时,一共经过的米数。
第 2 2 2 行:第 10 10 10 次弹跳的高度。
注意:结果可能是实数,结果用 double 类型保存。
提示:输出时不需要对精度特殊控制,用 cout<<ANSWER
,或者 printf("%g",ANSWER)
即可。
样例 #1
样例输入 #1
20
样例输出 #1
59.9219
0.0195313
代码内容
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//堆/优先队列
// #include <queue>//队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
double h;
cin>>h;
double ans=h;
for(ll i=1;i<10;i++)
{
h/=2;
ans+=h*2;
}
printf("%.4lf\n%lf",ans,h/2);
return 0;
}