http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=494
题目大意:
一只蜗牛要从爬上n英寸高的地方,他速度为u每分钟,他爬完u需要休息1分钟,且他休息时下滑d英寸,问他什么时候爬出去。
吐槽:
小学的数学题编程了编程题,简直丧心病狂。
思路:
数据量小直接模拟即可。
也可以用数学推导
模拟板:
#include<cstdio> int main()
{
int n,u,d;
while(~scanf("%d%d%d",&n,&u,&d),n||u||d)
{
int h=0;
int ans=0;
while(h<n)
{
ans++;
h+=u;
if(h >=n)
break;
ans++;
h-=d;
}
printf("%d\n",ans);
}
return 0;
}
公式版:
#include<cstdio> int main()
{
int n,u,d;
while(~scanf("%d%d%d",&n,&u,&d),n||u||d)
{
int h=0;
double temp=double(n-d)/double(u-d);
int ans;
if(temp - (int) temp< 1e-12)
ans=temp;
else
ans=temp+1; printf("%d\n",2*ans-1);
}
return 0;
}