B2076 球弹跳高度的计算 题解
找规律
| 弹跳次数 | 经过米数 | 高度 |
|---|
| 1 | h+2h⋅2 | 21h |
| 2 | h+2⋅(2h+4h) | 22h |
| 3 | h+2⋅(2h+4h+8h) | 23h |
| ... | ... | ... |
| 10 | h+2⋅(2h+4h+...+512h) | 210h |
∴第10次弹跳后的高度为1024h
h+2(2h+4h+...+512h)=h⋅(1+1+211+221+...+281)
利用等比数列求和公式得
(q为等比)
S=1+qa1−an∗q=1+211−2561⋅21=256767
∴第10次弹跳后共经过米数为h256767
奉上代码(注意精度):
CPP123456#include <iostream>
int main(){
int h; std::cin >> h;
std::cout << h * 767.0 / 256.0 << std::endl << h / 1024.0;
return 0;
}
Aceepted