PHP (38 байт):
Это использует тот же подход, что и мой ответ ES6
<?=count(split(1,decbin($_GET[n])))-1;
Это полный код, вам нужно всего лишь поместить его в файл и получить к нему доступ через браузер с параметром n=<number>
.
PHP <4.2 (32 байта):
Это немного короче:
<?=count(split(1,decbin($n)))-1;
Это работает надежно только на PHP <4.2, потому что директива по умолчанию register_globals
была установлена Off
с PHP4.2 до PHP5.4 (которая к тому времени была удалена).
Если вы создадите php.ini
файл с помощью register_globals=On
, это будет работать.
Чтобы использовать код, получите доступ к файлу через браузер, используя POST или GET.
Он дал 2 действительно хороших предложения, которые имеют очень интересное использование функции array_sum
:
38 байт:
<?=array_sum(str_split(decbin(1337)));
45 байт:
<?=array_sum(preg_split('//', decbin(1337)));
Это действительно отличная идея, и ее можно укоротить еще немного, до 36 байт:
<?=array_sum(split(1,decbin(1337)));