hdoj1049
2016-01-30 16:30
357 查看
[align=left]Problem Description[/align]
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.
[align=left]Input[/align]
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.
[align=left]Output[/align]
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.
[align=left]Sample Input[/align]
[align=left]Sample Output[/align]
代码:
思路:简单的贪心题,蜗牛滑坡…………
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.
[align=left]Input[/align]
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.
[align=left]Output[/align]
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.
[align=left]Sample Input[/align]
10 2 1 20 3 1 0 0 0
[align=left]Sample Output[/align]
17 19
代码:
#include<stdio.h> int main() { int n,u,d,T,i; while(scanf("%d%d%d",&n,&u,&d)!=EOF) { T=0; if(n==0&&u==0&&d==0) break; for(i=0;;i++) { if(n<=0) { printf("%d\n",T); break; } else { n-=u; T++; if(n<=0) { printf("%d\n",T); break; } n+=d; T++; } } } return 0; }
思路:简单的贪心题,蜗牛滑坡…………
相关文章推荐
- Android RecyclerView的使用
- HDU 5604/BC 67E merge
- MFC中如何从Unicode到多字节的转换
- git rebase 后找回消失的commit
- 关于闭包与for循环的理解
- Handlebars.js 模板引擎
- 自定义ImageView实现地图(一)
- 设计模式六大原则之Liskov替换原则
- LVS负载均衡介绍
- mysql index
- H-Index
- git add时候报错:LF will be replaced by CRLF
- 100. SimpleXML
- android webview用法小结
- ubuntu如何分区
- poj1308
- 层叠样式表——CSS
- HDU 1069 I Think I Need a Houseboat(模拟)
- MySQL复制的三种架构
- Vim加入文档声明信息