杭电acm_step1.2.2
来源:互联网 发布:零基础学算法 第三版 编辑:程序博客网 时间:2024/06/07 05:17
先上原题:
Problem Description
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.
Input
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.
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 120 3 10 0 0
Sample Output
1719
每行你要输入三个数字,n,u,d,分别表示井深,向上的速度和滑下的速度,采取多组输入的形式,当n,为0时停止输入。
分析:比较简单,每上一分钟停一次,那么在最后一次将要爬出井口时,向上爬的时间与下滑的时间是一样的。那么完全爬出井口就是算作向上爬的时间比下滑的时间多一分钟,因此可以根据这个关系列出方程,从而得到答案。
#include<iostream>using namespace std;int main(){int n, u, d;while (cin >> n){if (n == 0)break;cin >> u >> d;int x, y;x = (n - d) / (u - d);y = x - 1;if ((x*u - d*y) < n){x = x + 1;y = x - 1;}cout << x + y << endl;}return 0;}
阅读全文
0 0
- 杭电acm_step1.2.2
- 杭电ACM_step1.2.1
- 杭电OJ acm_step1.1.2
- acm_step1.1.4
- acm_step1.1.5
- acm_step1.1.6 1.1.7 1.1.8
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- LinkedBlockingQueue使用介绍
- 使用AngularJS实现局部分页
- fuchsia
- Postman模拟SpringMVC 文件上传
- 关于半透明遮罩层弹框
- 杭电acm_step1.2.2
- 如何用CSS打造评论功能中的星级打分效果
- Python3学习笔记1-变量,数据类型
- sge集群搭建
- lk
- nginx配置1:借助Nginx搭建反向代理服务器与缓存静态文件
- win10下openssl生成证书过程
- mysql api编程(三) 事务
- js排序算法