摘要:模拟或计算判断按一定规律消耗的消耗总时长。
原题目:
HDU - 1408
挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢?
10 1
13
题目理解:数据量化为整数 的到滴数,再进行模拟或直接计算时间。结果为滴数加上间隔数
注意:
注意题目没有说不可以是小数。
题目没滴一滴都要用时。
题目最后点落到求滴数。
2017 05 19
代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int getn(double num,double unit){
int t=(int)(num/(unit+1));
while(t*unit<num){//get t dot
t++;
}
if(t==1){
return 1;
}
- int ans,sum=t;// how many times
for(ans=1;sum>0;sum-=ans,ans++);
//printf("%d-",ans);
return t+ans-1-1;
}
int main(){
double num,unit;
while(~scanf("%lf%lf",&num,&unit)){
printf("%d\n",getn(num,unit));
}
}