问题及代码:
知识点总结:
n长虫子u步d滑。
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:HDU.cpp
*作 者:单昕昕
*完成日期:2015年1月19日
*版 本 号:v1.0
*
*问题描述:An inch worm is at the bottom of a well n inches deep. It has enough energy to climb u
inches every minute, but then has to rest a minute before climbing again. During the rest,
it slips down d inches. The process of climbing and resting then repeats. How long before
the worm climbs out of the well? We'll always count a portion of a minute as a whole minute
and if the worm just reaches the top of the well at the end of its climbing, we'll assume
the worm makes it out.
一寸虫在一个N英寸深底。它有足够的能量爬u英寸的每一分钟,但然后休息几分钟才爬了。休息的时候,
它滑落d英寸。攀岩和休息的过程,然后重复。多久之前,虫子爬得好吗?我们会算一分钟的一部分作为
一个整体分钟,如果虫子就达到在其尽头爬上井上,我们假设蠕虫出来。
*程序输入:There will be multiple problem instances. Each line will contain 3 positive integers n, u and d. These give the values mentioned in the paragraph above. Furthermore, you may assume d
< u and n < 100. A value of n = 0 indicates end of output.
*程序输出:Each input instance should generate a single integer on a line, indicating the number of
minutes it takes for the worm to climb out of the well.
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&&u==0&&d==0) break;
else
{
if(((n-u)%(u-d))==0)
cout<<1+2*((n-u)/(u-d))<<endl;
else
cout<<1+2*(((n-u)/(u-d))+1)<<endl;
}
}
return 0;
}
运行结果:
知识点总结:
n长虫子u步d滑。
学习心得:
还是数学问题啊。