HDU-worm-n长虫子u步d滑

79 篇文章 0 订阅
问题及代码:
/*  
*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滑。

学习心得:

还是数学问题啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值