swust oj 281
题目描述
装在瓶子(瓶子高度为h)的蠕虫都想从瓶子底部向瓶口处爬出去。它每分钟向上爬行u厘米,之后会休息一分钟,这一分钟它会向下滑行d厘米,当蠕虫到了瓶口或者超出瓶口后便出了瓶口,成功逃离(每分钟计算一次位置)。编写一个函数,帮助蠕虫计算它在什么时候能够爬出瓶子。
输入
输出
样例输入
样例输出
满足条件和思路
(1)输入0 0 0 时 没有输出
(2)h<d时,不符合题意
(3)顺序是先加u,再减d,设置函数时,要体现先后顺序
(4)需要注意的是在向上爬的u厘米内,可能以及满足逃离的条件,所以在for循环语句中判断语句if,应该在加u后,而非减d后。
源代码
#include<stdio.h>
int main()
{
int h,u,d;
int c(int h,int u,int d);
while(scanf("%d%d%d",&h,&u,&d)!=EOF)
{
if(h==0 && u==0 && d==0)
return 0;
else if(h<=d)
printf("input is wrong!");
else
printf("%d\n",c(h,u,d));
}
return 0;
}
int c(int h,int u,int d)
{
int time,m=0;
for(time=1;;time++)
{
m+=u;
if(m>=h)
return time;
time++;
m-=d;
}
}