2021/8/3打卡算法模拟
例题
原题
一只一英寸的蠕虫位于 x英寸深的井的底部。它每分钟向上爬y 英寸,但是必须休息一分钟才能再次向上爬。在休息的时候,它滑落了 z 英寸。之后它将重复向上爬和休息的过程。蠕虫爬出井口花费了多长时间?我们将不足一分钟的部分算作一整分钟。如果蠕虫爬完后刚好到达井的顶部,我们也设作蠕虫已经爬出井口。
解题思路
直接使用程序模拟蠕虫爬井的过程就可以了。用一个循环重复蠕虫的爬井过程,当攀爬的长度超过或者等于井的深度时跳出。注意上爬和下滑时都要递增时间。
解题代码
#include<iostream>
using namespace std;
int main()
{
int x,y,z;
while (cin >> x >> y >> z&&x!=0)
{int s = 0, time = 0;
while (true)
{
s += y;
time++;
if (s >= x)
{
cout << time << endl;
break;
}
s -= z;
time++;
}
}
}