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

蠕虫爬井:一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。问蠕虫需要多长时间才能爬出井?要求不足1分钟按1分钟计算,假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。输入格式:输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100但必须大于0。输出格式:在一行中输出蠕虫爬出井的时间,以分钟为单位。

#include <stdio.h>

void main() {
    int n, u, d, time = 0, curh = 0;
    /* 输入井的深度,蠕虫上爬和下滑的距离 */
    scanf("%d%d%d", &n, &u, &d);
    while (1) {
        time++;
        curh += u; /* 每爬一次,上升 u 距离 */
        if (curh >= n) break;
        time++;
        curh -= d; /* 休息一次,下滑 d 距离 */
    }
    printf("%d\n", time);
}

猜你喜欢

转载自blog.csdn.net/qq_38490457/article/details/104849964