题目链接
https://www.dotcpp.com/oj/contest4207_problem0.html
题目描述
挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一 下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也 算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢?
输入
输入数据占一行,由VUL和D组成,其中0< D< VUL< 5000。
输出
请输出挂完盐水需要的时间。
样例输入
10 1
样例输出
13
解题思路
一:因为每次滴下的滴数为等差数列,所以首先可以求出第几次滴完。
二:每一滴所用的时间相同,可用A/D判断一共需要多少滴,若有余数,则加1。
三:最后把次数与滴数相加。
代码
#include<stdio.h>
int main()
{
int A,D,i,j,k,a=0,b;
scanf("%d %d",&A,&D);
i=1;
while(a<A)//滴数不大于总滴数
{
a=a+D*i;//用来判断所用的次数i。
i++;
}
if(A%D==0)//判断是否有余数
{
b=A/D;
}
else
{
b=A/D+1;
}
printf("%d",b+i-2);//输出
return 0;
}