一只小虫,虫在井底,井有 n 英寸深。它有足够的能量每分钟爬上 u 英寸,但在再次爬上之前,必须休息一分钟。在休息的过程中,它下滑了 d 英寸。攀爬和休息的过程会重复。虫子多久才能爬出井外?我们总是把一分钟的一部分算作整整一分钟,如果蠕虫在爬行结束时刚刚到达井顶,我们就认为蠕虫爬出了井。
Input
将会有多个问题实例,每一行将包含 3 个正整数 n、u 和 d。它们给出了上段中提到的数值。此外,你可以假设 d < u,n < 100。n = 0 表示输出结束。
Output
每个输入实例都应该在一行上生成一个整数,表示虫子爬出井口所需的分钟数。
Sample Input
10 2 1
20 3 1
0 0 0
Sample Output
17
19
#include <iostream>
using namespace std;
int main()
{
int n, u, d;
while (cin >> n >> u >> d)
{
if (n == 0)
break;
int S = 0;
int time = 0;
while (S < n)
{
S += u;
++time;
if (S >= n)
break;
S -= d;
++time;
}
cout << time << endl;
}
return 0;
}