花露水和暖壶


私信TA

用户名:MichaelMeng

访问量:9982

签 名:

等  级
排  名 86
经  验 9293
参赛次数 0
文章发表 28
年  龄 0
在职情况 学生
学  校 烟台大学
专  业

  自我简介:

不喜欢摇滚乐的研究生不是好程序猿!

    总共需要考虑三种情况:

        (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分

2 人评分

  评论区

  • «
  • »