PTA 7-17 爬动的蠕虫

7-17 爬动的蠕虫(15分)

一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?

这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。

输入格式:

输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。

输出格式:

在一行中输出蠕虫爬出井的时间,以分钟为单位。

输入样例:

12 3 1

输出样例:

11

题解:

objectivec 复制代码
#include <stdio.h>

int main()
{
    int n = 0, u = 0, d = 0;
    scanf("%d %d %d", &n, &u, &d);
    int sum = 0; // 爬的总路程
    int time = 0; // 所花时间
    while(sum < n)
    {
        time++; // 上爬加1分钟
        sum += u; // 上爬高度
        if(sum < n) // 判断是否爬到井口
        {
            sum -= d;
            time++; // 休息加1分钟
        }
    }
    printf("%d\n",time);

    return 0;
}
相关推荐
Q***l68718 分钟前
C++在计算机图形学中的渲染
开发语言·c++
0和1的舞者24 分钟前
《网络编程核心概念与 UDP Socket 组件深度解析》
java·开发语言·网络·计算机网络·udp·socket
惜棠26 分钟前
visual code + rust入门指南
开发语言·后端·rust
n***i9527 分钟前
Rust在嵌入式系统中的内存管理
开发语言·后端·rust
q***062927 分钟前
ThinkPHP和PHP的区别
开发语言·php
oioihoii33 分钟前
C++语言演进之路:从“C with Classes”到现代编程基石
java·c语言·c++
小白程序员成长日记41 分钟前
2025.11.23 力扣每日一题
算法·leetcode·职场和发展
Java天梯之路43 分钟前
Java 初学者必看:接口 vs 抽象类,到底有什么区别?
java·开发语言
7***53341 小时前
Rust错误处理模式
开发语言·后端·rust
T***16071 小时前
C++在游戏开发中的AI行为树
开发语言·c++