题目:
一只1英才长的小青蛇在一口深n英寸的井底。它有足够的力气完成每分钟向上爬u英寸,但必须休息1分钟才能继续爬。在休息的过程中,小青蛇又下滑了d英寸。这样上爬和下滑的过程重复进行着。小青蛇需要多长时间才能爬出井?在此,不足一分钟按一分钟计,并且假定只要在某次上爬过程中小青蛇的头部到达了井的顶部,那么小青蛇就完成任务了。
输入格式:
输入文件包括多组测试数据。每组占一行,为3个正整数n,u,d,其中n是井的深度,u是小青蛇每分钟上爬的距离,d是小青蛇在休息的过程中下滑的距离。假定d< u,n < 100。n=0表示输入数据结束。
输出格式:
对输入文件中的每组测试数据,输出一个整数,表示小青蛇爬出井所需要的时间(分钟,不足1分钟按1分钟计算)。
输入样例:
10 2 1
20 3 1
0 0 0
输出样例:
17
19
解题代码:
#include <stdio.h>
int main()
{
int n,u,d,sum;
while(~scanf("%d %d %d",&n,&u,&d))
{
sum=0;
if(n==0) break;
for(;;)
{
n-=u;
sum++;
if(n<=0) break;
else
{
n+=d;
sum++;
}
}
printf("%d\n",sum);
}
return 0;
}