Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Поразрядные операции с числами


Автор: sv-folder 12.12.2009, 00:12
Доброго времени суток всем форумчанам!

Хотел попросить помощи у разбирающихся в вопросе.
Сразу скажу, вопрос более чем просто нестандартен, поэтому прошу заранее, советы типа "проще сложить вручную столбиком" или вопросы типа "зачем такие ограничения" не давать.

Вопрос следующий:

Необходимо написать PHP-функцию c целочисленным аргументом AddOne(n), которая возвращает n+1. 
Нельзя использовать следующие арифметические операции в теле функции: + - *  / ++ -- += -=


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

Прошу помощи.

С Уважением Дмитрий.

Автор: comcon1 12.12.2009, 02:08
Ура!
Рекурсия!

Код

function aplusb($a,$b) {
     if ($b == 0) return $a;
     if ($a == 0) return $b;
     $c = $a ^ $b;
     $d = ($a & $b) << 1;
     return aplusb($c,$d);
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)