盐水问题

题目描述
XP一不留神感冒了,于是跑到校医院打点滴。打点滴真是无聊啊,
他看到盐水一滴一滴地滴下来,突然想到一个问题:如果盐水有规律地滴下,
先滴一滴,停一下;然后滴二滴,停一下;再滴三滴,停一下…,
假设这瓶盐水一共有n毫升,每一滴是y毫升,每一滴需要的时间是一秒
(假设最后一滴不到y毫升,需花费的时间也算一秒),停一下的时间也是一秒。
请问XP多久能挂完这瓶盐水呢?

输入格式
输入数据包含多个测试实例,每个实例占一行,由VUL和D组成,其中 0<D<VUL<5000。

输出
对于每组测试数据,请输出挂完盐水需要的时间,每个实例的输出占一行。

样例输入
10 1

样例输出
13

思路:
先计算滴盐水的时间,再计算盐水之间间隔的时间。

#include<stdio.h>
#include<math.h>
int main()
{
    int v,d,s,i,h;
	while(scanf("%d%d",&v,&d)!=EOF)
	{
		s=v/d;
        h=ceil(s);      //ceil函数表示返回大于或者等于指定表达式的最小整数(滴盐水时间),对应题目条件最后一滴不到y毫升也算一秒。
        for(i=1;;i++)   
		{ 
	      s-=i;         
	      if(s<=0)    
		     break;
	      h++;          //盐水之间的间隔时间
		}
	    printf("%d",h);
	}
return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42766201/article/details/84856623