题目描述
小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;
}