题目地址:
https://www.luogu.com.cn/problem/P1423
题目描述:
小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游
2
2
2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的
98
%
98\%
98%。现在小玉想知道,如果要游到距离
x
x
x米的地方,她需要游多少步呢。请你编程解决这个问题。
输入格式:
输入一个数字(不一定是整数,小于
100
m
100m
100m),表示要游的目标距离。
输出格式:
输出一个整数,表示小玉一共需要游多少步。
代码如下:
#include <iostream>
using namespace std;
int main() {
double x;
cin >> x;
int res = 0;
for (double s = 0.0, t = 2.0; ; t *= 0.98) {
if (s >= x) break;
s += t;
res++;
}
printf("%d\n", res);
return 0;
}
时间复杂度 O ( x ) O(x) O(x),空间 O ( 1 ) O(1) O(1)。