P1423 小玉在游泳

题目描述
小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。

输入格式
输入一个数字(不一定是整数,小于100m),表示要游的目标距离。

输出格式
输出一个整数,表示小玉一共需要游多少步。

输入输出样例
输入
4.3
输出
3

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 int main()
 5 {
 6     /*思路:
 7         1:输入目标距离x
 8         2:定义当前已经移动的距离sum,和下次移动的距离data
 9         3:while循环 判断 sum+data是否超过目标距离x
10         4:若sum+data>=x结束,输出步数
11         5:否则继续while循环
12     */
13     int step=1;//初始定为1步,若是不满足直接输出步数即可
14     double sum=0;//当前已经移动的距离
15     double stepLength=2;//初始为2
16     double x;//目标距离
17     cin>>x;
18     while(sum+stepLength<x){
19         step++;//步长+1
20         sum+=stepLength;//更新当前距离
21         stepLength*=0.98;//下次移动的距离
22     }
23     cout<<step<<endl;
24     return 0;
25 }
12-26 14:53