SWUST OJ#281逃跑的蠕蟲
阿新 • • 發佈:2021-01-11
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;
}
}