时间限制: 1Sec 内存限制: 128MB
题目描述:(原题链接)
挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一 下;再滴三滴,停一下…,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也 算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢?
输入:
输入数据占一行,由VUL和D组成,其中0< D< VUL< 5000。
样例输入:
10 1
输出:
请输出挂完盐水需要的时间。
样例输出 :
13
解题思路:
模拟
注意事项:
注意比较点滴滴完的条件用的是精度,精度达到之后就停止循环
参考代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int v=in.nextInt(),d=in.nextInt();
int cnt=0,dd=1; //表示每次点滴的滴数目
while(true){
boolean flag = false; //是否滴完
for(int i=0;i<dd;i++) { //表示最后一次的耗时
v=v-d;
cnt++; //按滴计算时间,而不是固定的时间函数
if(v<0.000001) {
flag=true;
break;
}
}
if(flag)
break;
dd++; //点滴数目递增
cnt++; //时间计数
}
System.out.println(cnt);
in.close();
}
}