思路

水一篇打表题解。

首先第十次弹跳的高度很简单,是 $h\div1024$。

接下来看共经过的米数:

$$ h\times(1+1+\frac{1}{2}+\frac{1}{2^2}+...+\frac1{2^8}) $$

右边那串东西可以按按计算器,也可以套等比数列求和公式:

$$ S=1+\frac{1-\frac1{256}\times\frac12}{\frac12}=\frac{767}{256} $$

所以经过的米数为 $h\times\frac{767}{256}$ 米。

代码

#include<bits/stdc++.h>
using namespace std;
double h;
int main(){
    scanf("%lf",&h);//输入h
    printf("%lf %lf",h*767.0/256.0,h/1024.0);//输出所经过米数和第十次弹跳高度
    return 0;
}