爬旗杆 (15分)

题目描述

小C从小很调皮, 调皮的小孩聪明啊。小C的小学有一根金属旗杆, 每天做早操前,小朋友们都要举行升国旗仪式,小C每次看到国旗徐徐上升,边唱国歌、边敬礼、边发呆。一天小C突然想爬到旗杆顶,有想法就要付诸行动。已知旗杆n米高,小C爬行速度为x米/秒,因为旗杆很滑,爬行很费力,小C体力有限,所以每过t秒,要休息2秒, 也因为旗杆滑,不爬行时,小C会从旗杆上滑下来,下滑的速度为y米/秒。

输入格式:

多组测试数据, 每行输入4个整数n x y t。 (1<=n,x,t,y<=1000)

输出格式:

输出小C到达杆顶的时间,精确到秒,如果小C到达不了杆顶,输出-1。每个输出占一行。

输入样例:

在这里给出一组输入。例如:
5 4 4 2
9 4 4 2

输出样例:

2
-1

源代码

#include <stdio.h>
int main()
{
    
    
    int T=0,sT;   //T用来计时
    int n,x,y,t,sum=0,i;
    while(scanf("%d %d %d %d",&n,&x,&y,&t)!=EOF)
    {
    
    
        sum=0;T=0;   //注意重置sum T的值  重置变量是细节问题 需要重视!!!    若不重置则错
        sT=x*t-2*y;
        if(sT<=0&&x*t<n)
        {
    
    
            printf("-1\n");
            continue;
        }
        for(i=1;sum<n;i++)  //i只记为劳动时间
        {
    
    
            sum = sum +x;
            T++;
            if(sum>=n)
            {
    
    
                printf("%d\n",T);
                continue;
            }
            if(i%t==0)
            {
    
    
                sum = sum -2*y;
                T=T+2;
            }
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_49930465/article/details/112997418