Почему вычисление типа данных long дает неверный ответ? - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь выполнить деление на тип переменной long. Но всякий раз, когда платформа пытается ввести 1000000000000000, мой код прерывается и выдает случайный вывод. В чем здесь проблема?

int main(){
    long var, ans;
    cin>>var;

    if (var %2 == 0)
    {
        ans= long(var/2);

        cout<<ans;
    }
    else{
        ans = -(long(var+1)/2);
        cout<<ans;
    }
    return 0;
}

Я компилирую с g++ codename.cpp.

...