总共需要考虑三种情况:

        (1)上爬的高度直接大于等于密道的深度,那么当天白天就能爬出密道,而且 不用进入黑夜下滑

        (2)上爬的高度小于密道的深度,一天肯定爬不出去,而且上爬的高度小于等于下滑的高度,那么爬得还不如滑得多,爬到海枯石烂你也爬不出去

        (3)排除上两种情况,剩余的就是一定能爬得出去

参考代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

int main() {
    int high = 0, up = 0, down = 0;
    while (scanf("%d %d %d", &high, &up, &down) == 3) {
        
        int distance = 0;//把上爬和下滑都考虑进去后的实际爬升的距离
        int days = 0;//需要days天爬出密道
        
        if (up >= high) {
            //上爬的距离大于等于密道的高度,那么当天白天就能爬出来
            printf("%d\n", 1);
        } else if (up <= down) {
            //如果上爬还不如下滑的多或者是上爬和下滑一样多,那就肯定无法爬出密道
            printf("GAME OVER!\n");
        } else {
            //其余的情况一定能爬出密道
            
            while (distance < high) {
                //只要实际上爬的距离没有超过密道高度,那就接着给爷爬
                distance += up;//白天上爬b米
                if (distance >= high) {
                    /*
                     * 每上爬一次就得检查是否能够爬出密道,
                     * 如果实际距离大于等于密道高度,那就天数加一,结束循环,
                     * 否则就是还没能够爬出密道,进入黑夜下滑
                     */
                    days++;
                    break;
                }
                
                //白天上爬没能够爬出密道,深夜开始下滑
                distance -= down;//晚上下滑c米
                days++;//又爬了一天
            }
            printf("%d\n", days);
        }
        printf("\n");

    }


    return 0;
}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论