LINUX.ORG.RU

История изменений

Исправление MKuznetsov, (текущая версия) :

while (N) {
  if ((N & 3)==3) {
     N++;
     N>>=2;
     answer+=3;
  } else if (N & 1) {
     N--;
     N>>=2;
     answer+=3;
  } else {
     N>>=1;
     answer+=1;
  }
}

Исправление MKuznetsov, :

while (N) {
  if (N & 3) {
     N++;
     N>>=2;
     answer+=3;
  } else if (N & 1) {
     N--;
     N>>=2;
     answer+=3;
  } else {
     N>>=1;
     answer+=1;
  }
}

Исходная версия MKuznetsov, :

while (N) {
  if (N & 3) {
     N++;
     N>>=2;
     answer+=3;
  } else if (N & 1) {
     N--;
     N>>=2;
     answer+=2;
  } else {
     N>>=1;
     answer+=1;
  }
}