题目描述
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;
}