#C ++ DOTA 2(Viper)计算时间

时间:2017-11-13 13:58:47

标签: c++

我遇到了这个问题: “V蛇是Dota 2中的英雄,具有特殊技能,可以在2秒内将其他人的速度降低大约40%,而且我们不能将所有这些加在一起,例如当它是1s时,Viper使用这个特殊的一个,他当离开1s时又做了一次。所以其他英雄慢慢移动的时间是3(s)“

+输入: Viper使用这种特殊技能的时间系列,当它为-1时停止;

+输出: 完全是其他英雄的时间! 另一个例子:

输入:

  • 1.3 3.1 5.7 7.4 11.4 14.0 16.9 17.0 19.0 22.3 22.5 24.5 -1

输出:

  • 19.8

- > 我的问题是此代码在所有情况下都不正确! 这是我的代码:

#include <iostream>

using namespace std

int main()
{
  long double a,b,c,h,s=0,luuso[100000];
  int i=0;
  do
  {
   cin>>a;
   luuso[i]=a;
    i++;
  } while(a!=-1);

    h=i-1;
    i=0;
    do {
    if((luuso[i+1]-luuso[i])<2 && (luuso[i+1]-luuso[i])>0)
    {
        s+=luuso[i+1]-luuso[i]+2;
        i+=2;
    }
    else
    {
        s+=2;
        i++;
    }
    } while(i!=h);

    cout << s << endl;
    return 0;
}

0 个答案:

没有答案