Дано целое неотрицательное число. С ним можно делать следующие операции: увеличивать на 1; уменьшать на 1; делить его на два, если оно четное. Требуется за минимальное число операций получить 0. Вход. Целое неотрицательное число меньше 2000000.
Выход. Минимальное число операций.
http://www.kml.mipt.ru/judge/problems.pl?problem=026
#include <iostream>
using namespace std;
int main() {
int N, answer = 0;
cin >> N;
while(N != 0) {
if(N%2){
if( (N+1) % 4){
N--;
}
else
N++;
}
else
N /=2;
answer++;
}
cout << answer << endl;
}
Где ошибка?