原题链接:大神的探险 之 满载而归
总共需要考虑三种情况:
(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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复