Я тут зашел на toptal, попробовал их тесты, и слегка офигел 
Задача:
Входной параметр - число, которое представлено в двоичном виде в системе счисления с базой -2. Отрицательная база. 1001 - это десятичное -9.
Алгоритм преобразования в десятичную систему прост:
Надо вычислить представление числа в результате отрицания. То есть если дано -9, надо вычислить двоичное представление для 9 по базе -2.
base_convert() не подходит потому что ждет базу от 2 до 35.
Алгоритм приведения числа к бинарному виду через остаток от деления не подходит, потому что нужно подобрать сумму из отрицательных и положительных чисел.
Жесткий такой тест для PHP.

Задача:
Входной параметр - число, которое представлено в двоичном виде в системе счисления с базой -2. Отрицательная база. 1001 - это десятичное -9.
Алгоритм преобразования в десятичную систему прост:
PHP:
$x = [1,0,1,1];
$decimal = 0;
foreach ($x as $k=>$v) {
$decimal += $v * (-2)**$k;
}
echo $decimal;
base_convert() не подходит потому что ждет базу от 2 до 35.
Алгоритм приведения числа к бинарному виду через остаток от деления не подходит, потому что нужно подобрать сумму из отрицательных и положительных чисел.

Жесткий такой тест для PHP.
Последнее редактирование: