## 题目描述
小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游 2 米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的 98%。现在小玉想知道,如果要游到距离 s 米的地方,她需要游多少步呢。请你编程解决这个问题。
## 输入格式
输入一个实数 s(单位:米),表示要游的目标距离。
## 输出格式
输出一个整数,表示小玉一共需要游多少步。
### 样例输入 #1
4.3
### 样例输出 #1
3
## 提示
数据保证,0≤s<100,且 s 小数点后最多只有一位。
分析:
本题考查循环的使用,首先我们需求求步数,设定一个变量为times用来存放步数,因为每次游泳的距离是上一次的98%,由初始值2m以此减少,所以可以构建模型:
while(当已经游过的路程仍小于总路程){
游过路程累加
设定下一次游泳的距离
游泳次数加一
}
代码:
#include <iostream>
using namespace std;
int times;
int main() {
double R;
double F = 2, p = 0;
cin >> R;
while (p < R) {
p = p+F;
F = F * 0.98;
times++;
}
cout << times << endl;
return 0;
}