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;
}
}
博客围绕swust oj 281题目展开,题目是计算装在瓶子里的蠕虫爬出瓶子的时间,蠕虫每分钟先向上爬u厘米,再休息一分钟下滑d厘米。给出了输入输出示例,还阐述了满足条件和思路,最后给出了用C语言实现的源代码。
526





