一條蠕蟲長1寸,在一口深為N寸的井的底部。已知蠕蟲每1分鍾可以向上爬U寸,但必須休息1分鍾才能接着往上爬。在休息的過程中,蠕蟲又下滑了D寸。就這樣,上爬和下滑重復進行。請問,蠕蟲需要多長時間才能爬出井?
這里要求不足1分鍾按1分鍾計,並且假定只要在某次上爬過程中蠕蟲的頭部到達了井的頂部,那么蠕蟲就完成任務了。初始時,蠕蟲是趴在井底的(即高度為0)。
輸入格式:
輸入在一行中順序給出3個正整數N、U、D,其中D<U,N不超過100。
輸出格式:
在一行中輸出蠕蟲爬出井的時間,以分鍾為單位。
輸入樣例:
12 3 1
輸出樣例:
11
/*假設爬行一分鍾,休息一分鍾*/ #include<stdio.h> int main() { int n, u, d;//井口高度,上爬量和下滑量 int time = 0, distance = 0;//蟲蟲消耗的時間(分鍾),距離井底的距離(寸) scanf("%i %i %i", &n, &u, &d); /** * 第1分鍾,爬; * 第2分鍾,滑; * 第3分鍾,爬; * 第4分鍾,滑; * ... * 時間為偶數,蟲蟲下滑; * 時間為奇數,蟲蟲上爬。 */ do { time++; if (time % 2 != 0) { distance += u; } else { distance -= d; } } while (distance < n); printf("%i\n", time); return 0; }
#include<stdio.h> int main() { int n,u,d,time=0,H=0; scanf("%d%d%d",&n,&u,&d); while(1) { H+=u; time++; if(H>=n)break; H-=d; time++; } printf("%d\n",time); return 0; }
