PHP (38 bytes):
Esto utiliza el mismo enfoque que mi respuesta ES6
<?=count(split(1,decbin($_GET[n])))-1;
Este es un código completo, solo necesita ponerlo en un archivo y acceder a él a través del navegador, con el parámetro n=<number>
.
PHP <4.2 (32 bytes):
Esto es un poco más corto:
<?=count(split(1,decbin($n)))-1;
Esto solo funciona de manera confiable en PHP <4.2 porque la directiva register_globals
se configuró Off
de manera predeterminada desde PHP4.2 hasta PHP5.4 (que se eliminó para entonces).
Si creas un php.ini
archivo con register_globals=On
, esto funcionará.
Para usar el código, acceda al archivo usando un navegador, ya sea con POST o GET.
Dio 2 sugerencias realmente buenas que tienen un uso muy interesante de la función. array_sum
:
38 bytes:
<?=array_sum(str_split(decbin(1337)));
45 bytes:
<?=array_sum(preg_split('//', decbin(1337)));
Esta es una gran idea y se puede acortar un poco más, para tener 36 bytes de longitud:
<?=array_sum(split(1,decbin(1337)));