1. 程式人生 > 其它 >SWUST OJ#281逃跑的蠕蟲

SWUST OJ#281逃跑的蠕蟲

技術標籤:C語言程式設計c語言

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; } }