C - Climbing Worm

题目如下:

An inch worm is at the bottom of a well ninches deep. It has enough energy to climb u inches every minute, but then hasto rest a minute before climbing again. During the rest, it slips down dinches. The process of climbing and resting then repeats. How long before theworm climbs out of the well? We'll always count a portion of a minute as awhole minute and if the worm just reaches the top of the well at the end of itsclimbing, we'll assume the worm makes it out. 

----------------------------------------------------------------------------------------------------------------------

输入如下:

There will be multiple problem instances.Each line will contain 3 positive integers n, u and d. These give the valuesmentioned 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 asingle integer on a line, indicating the number of minutes it takes for theworm to climb out of the well. 

----------------------------------------------------------------------------------------------------------------------

测试用例输入如下:

10 2 1

20 3 1

0 0 0

----------------------------------------------------------------------------------------------------------------------

测试用例输出如下:

17

19

----------------------------------------------------------------------------------------------------------------------

思路主要就是第一次的判断,第一次没有掉下来,所以只要一分钟。

----------------------------------------------------------------------------------------------------------------------

代码如下:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>

using namespace std;


int main()
{
	int x,y,z;
	while(scanf("%d%d%d",&x,&y,&z)!=EOF)
	{
		if(x==y && y==z && y==0) 
	     	break;
		int num = 0;
		while(true)
		{
			if(num!=0)
			{
				x+=z;
				x-=y;
				num+=2;
			}
			else
			{
				//第一次的判断 
				x-=y;
				num++;
			}
			if(x<=0) break;
		}
		printf("%d\n",num);
	}
	return 0;
}
----------------------------------------------------------------------------------------------------------------------
posted @ 2017-07-09 20:01  让你一生残梦  阅读(220)  评论(0编辑  收藏  举报