HDU 1049 Climbing Worm(水~)

来源:互联网 发布:java三目运算符怎么用 编辑:程序博客网 时间:2024/05/16 15:17

Description
一只蠕虫掉到了深度为n米的井中,这只蠕虫开始往上爬,一秒可以爬u米,但这只虫每爬一秒就要休息一秒,而每休息一秒就会往下掉d米,问蠕虫需要多少秒才能爬出深井
Input
多组用例,每组用例占一行占一行包括三个整数n,u,d,以0 0 0结束输入
Output
对于每组用例,输出蠕虫爬出深井用时
Sample Input
10 2 1
20 3 1
0 0 0
Sample Output
17
19
Solution
小学数学题,如果你直接用n/(u-d)求那恭喜你可以去幼儿园报道了,显然最后一秒虫是在向上爬的,它不会爬出去之后还往下掉,所以先用(n-u)/(u-d)算出最后一次往上爬之前的用时,然后通过判断(n-u)/(u-d)是否为0判断是否需要再爬一次掉一次,最后加上最后一秒往上爬的时间即可,即ans=1+2*(((n-u)/(u-d))+((n-u)%(u-d)==0?0:1))
Code

#include<cstdio>#include<iostream>using namespace std;int main(){    int n,u,d;    while(scanf("%d%d%d",&n,&u,&d)&&(n||u||d))    {        int ans=1;        ans+=2*(((n-u)/(u-d))+((n-u)%(u-d)==0?0:1));        printf("%d\n",ans);    }    return 0;}
0 0
原创粉丝点击