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 }