问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1049
问题简述:
井深 n 英尺,虫子向上爬的速度为 u 英尺/分,在每次爬行过后须休息一分钟,并在休息期间下落 d 英尺。输入n u d,求出虫子爬出井口所需的时间。
问题分析:
- 虫子向上爬 u 英尺后,时间+1,距离井口距离 n -d ,判断是否到达井口
- 若已到达则输出结果,若未到达,则须将距离井口距离 n + d 并使时间+1
- 循环1,2步直至 n<=0 即虫子已到井口
AC通过的C++语言程序如下:
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n==0)
break;
int t=0,u,d;
cin>>u>>d;
while(n>0)
{
n-=u;
t++;
if(n>0)
{
n+=d;
t++;
}
}
cout<<t<<endl;
}
}