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)));