Как можно сократить время компиляции в c++

91
03 октября 2021, 10:40

Я написал программу и начал проверять ее. У нее стоит условие, что время выполнения меньше 1 секунды. И проверяю на сайте компилятора, понял, что наверное ошибка состоит в том, что при постановке больших чисел, программа компилируется дольше. Что подскажете, может нужно сократить код, или как-то что-то сделать?

  #include <iostream>
   using namespace std;
   int main(){
   int a,b,s=0,u=0;
    cin>>a>>b;
    for (int i=a;i<=b;i++){
     if (i%2==0){
     u+=i;
     } 
      else{
       s+=i;
        }
         } 
         cout<<u-s;
        return 0;
         }

Сама программа заключается в том, что вы вводете два числа и суммируются четные и нечетные от первого ввода до второго а в конце вычитается из четный нечетные. Пожалуйста помогите.

Answer 1

Если не ошибаюсь, вам нужно это:

int main()
{
    int a, b;
    cin >> a >> b;
    if (a > b) { int t = a; a = b; b = t; }
    cout << (a+b-(b%2)*(1+2*b)+(a%2)*(1-2*a))/2 << endl;
}

Время компиляции никакого значения не имеет, только время счета. А теперь прикиньте количество вычислений в вашей программе при значениях, скажем, 1 и 1000000000...

READ ALSO
Вопросы по поводу inline (встраивания) геттеров

Вопросы по поводу inline (встраивания) геттеров

Я пытался разобраться со встраиванием сам, но не особо уверен в некоторых деталяхНасколько я понял встраивание происходит автоматически,...

218
Вывод символа новой строки в неизвестный поток

Вывод символа новой строки в неизвестный поток

Как правильно вывести символ новой строки в поток std::ostream, передаваемый функции?

83
JavaScript отладка

JavaScript отладка

У меня есть функция на 20000 строк

286
Не работает copyToClipboard js в chrome extension

Не работает copyToClipboard js в chrome extension

Создаю расширение для chromeСтолкнулся с проблемой копирования текста на js

299