0519 G2n#W2A-B 盐水的故事

来源:互联网 发布:大数据是一种思维方式 编辑:程序博客网 时间:2024/05/21 10:32
摘要:模拟或计算判断按一定规律消耗的消耗总时长。
原题目:HDU - 1408

挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢? 
Input
输入数据包含多个测试实例,每个实例占一行,由VUL和D组成,其中 0<D<VUL<5000。 
Output
对于每组测试数据,请输出挂完盐水需要的时间,每个实例的输出占一行。 
Sample Input
10 1
Sample Output
13
来源: https://cn.vjudge.net/problem/description/28415?1495117206000


题目理解:数据量化为整数 的到滴数,再进行模拟或直接计算时间。结果为滴数加上间隔数

注意
    注意题目没有说不可以是小数。
    题目没滴一滴都要用时。
    题目最后点落到求滴数。

2017 05 19

代码:
  1. #include <cstdio>
  2. #include <cstring>
  3. #include <algorithm>
  4. #include <cmath>
  5. using namespace std;
  6. int getn(double num,double unit){
  7. int t=(int)(num/(unit+1));
  8. while(t*unit<num){//get t dot
  9. t++;
  10. }
  11. if(t==1){
  12. return 1;
  13. }
  14. int ans,sum=t;// how many times
  15. for(ans=1;sum>0;sum-=ans,ans++);
  16. //printf("%d-",ans);
  17. return t+ans-1-1;
  18. }
  19. int main(){
  20. double num,unit;
  21. while(~scanf("%lf%lf",&num,&unit)){
  22. printf("%d\n",getn(num,unit));
  23. }
  24. }


原创粉丝点击