题解:洛谷 P1423 小玉在游泳
【题目来源】
【题目描述】
小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游 \(2\) 米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的 \(98\%\)。现在小玉想知道,如果要游到距离 \(s\) 米的地方,她需要游多少步呢。请你编程解决这个问题。
【输入】
输入一个实数 \(s\)(单位:米),表示要游的目标距离。
【输出】
输出一个整数,表示小玉一共需要游多少步。
【输入样例】
4.3
【输出样例】
3
【算法标签】
《洛谷 P1423 小玉在游泳》 #模拟#
【代码详解】
#include <bits/stdc++.h> // 包含标准库头文件(万能头文件)
using namespace std; // 使用标准命名空间
/**
* 主函数 - 程序入口
* @return 程序执行状态码(0表示成功)
*/
int main()
{
double n; // 定义变量:目标距离n米
double len = 0; // 定义变量:当前已跑距离,初始为0
double step = 2; // 定义变量:当前步长,初始为2米
int ans = 0; // 定义变量:跑步天数计数器
cin >> n; // 输入目标距离
// 循环计算达到目标距离所需天数
while (len < n)
{
len += step; // 累加当天跑步距离
step *= 0.98; // 更新步长(每天衰减为前一天的98%)
ans++; // 天数计数器加1
}
cout << ans; // 输出所需天数
return 0; // 程序正常结束
}
【运行结果】
4.3
3
浙公网安备 33010602011771号