题解:洛谷 P1423 小玉在游泳

【题目来源】

洛谷: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
posted @ 2026-02-16 15:19  团爸讲算法  阅读(3)  评论(0)    收藏  举报