【题目描述】一只蜗牛要爬上一个屋顶h米,但又不知道用多久爬上去,每天早上爬a米,晚上又滑下b米。于是它来找你来帮它编一个程序,算出它是否能爬上屋顶,若能爬上要用多久。
【输入格式】第一行三个整数h,a,b,均位于[1, 10000]。
【输出格式】如果能爬上屋顶,输出"YES",然后输出一个整数,表示天数;否则输出"NO"。
样例输入1:10 3 2 样例输出1:YES 8
样例输入2:10 3 4 样例输出2:NO
【C语言实现】
# include
# include
int main()
{
int h, a, b;
scanf("%d%d%d", &h, &a, &b); // 输入三个正整数
if (a >= b) { // 分情况考虑,向上爬的米数不小于向下滑的米数
int s = 0; // 变量s记录当前爬行的米数
for (int k = 1; ; ++k) { // 变量k记录日期
s += a; // 向上爬,将a累加到变量s
if (s >= h) { // 判断是否已经到屋顶,到屋顶要输出,并退出循环
printf("YES %d", k);
break;
}
s -= b; // 向下滑,相应地对变量s减去b
}
} else if (a < b && a >= h) { // 这种情况不要忘记!!!
printf("YES %d", 1); // 尽管向上爬的米数小于向下滑的米数,似乎不可能到达屋顶,但是可能在向下滑之前,也就是第1次向上爬的时候,已经到达屋顶了
}
else { // 其他情况,不可能到达屋顶
printf("NO");
}
return 0;
}