hdu 1302 The Snail 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1302
题目大意:一只井里的蜗牛早上会往上爬,晚上会往下滑,此题与那个众所周知的经典问题唯一不同的地方就是----这只蜗牛会越爬越累(向上爬的长度递减),很久还没爬上去的话,就爬不动了(不管有没有向上爬,向下滑的趋势是不变的)。
题目分析:此题要注意的地方不少,每次向上爬的距离递减,见的是一个常数---最初能向上爬的距离*百分比,而不是此时能向上爬的距离*百分比;还有天数要记好;另外,失败条件是掉回井底;还有,爬不动的话就只在晚上向下滑,白天不会自己向下滑(即使向上爬的距离为负)。(暂时就想到这么多)
以下是代码:
#include<stdio.h>
int main()
{
int i,flag,day;
double pos,slide,climb,target,percentage,up;
while(scanf("%lf%lf%lf%lf",&target,&up,&slide,&percentage)!=EOF&&(target||up||slide||percentage))
{
percentage/=100;
day=flag=pos=0;
climb=up;
while(pos<=target)
{
if(day)pos=pos-slide;
if(pos<0&&day)
{
flag=1;
break;
}
if(climb>0)pos+=climb;
climb=climb-up*(percentage);
day++;
}
if(flag)printf("failure on day %d\n",day);
else printf("success on day %d\n",day);
}
return 0;
}