题目链接
https://www.dotcpp.com/oj/contest4190_problem1.html
题目描述
cqy终于躲过了各种陷阱,打败了各种野怪,找到了宝藏。可是,墓穴里的氧气已经消耗殆尽,原路返回是不可能了。在这危急关头,cqy竟然奇迹般地发现一条密道,这条密道垂直通向地面。不能再犹豫了,cqy必须赶快架起绳索,向上爬出去!!!已知密道深度为a米,cqy白天会向上爬b米,晚上睡觉时会下滑c米,那么cqy需要几天才能爬出密道?
输入
有多行测试数据。对于每行测试数据,有三个整数a、b、c(0<a,b,c<50)。
输出
在一行内输出cqy爬出密道所需要的天数。如果cqy无法爬出密道,则输出“GAME OVER!”,每两组测试数据之间有一个空行。
样例输入
10 5 4 10 5 5
样例输出
6 GAME OVER!
解题思路
一:当每天爬的米数大于或等于滑的米数则不可能爬出。
二:当b>=a或着a==0的时候,第一天就会成功爬出。
三:当b<a&&b>c的时候,白天的时候sn=sn+b;接着判断sn>=a?,之后sn=sn-c。
代码
#include<stdio.h>
int main()
{
int a,b,c,i,j,k,d;
while(scanf("%d %d %d",&a,&b,&c)!=EOF)
{
d=0;
k=0;
int A;
A=a-b;
if(b>=a)//如果b>=a,则第一天就会爬出。
{
printf("1\n\n");
continue;
}
if(b-c<=0)//b<=c则不会爬出。
{
printf("GAME OVER!\n\n");
}
else
{
while(a!=0)
{
k++;//表示天数
d=d+b;//白天爬的米数
if(d>=a)//判断是否大于a
{
printf("%d\n\n",k);
break;
}
else
{
d=d-c;//滑的米数
}
}
}
}
return 0;
}