PHP (38 bajtów):
Używa tego samego podejścia, co moja odpowiedź ES6
<?=count(split(1,decbin($_GET[n])))-1;
Jest to pełny kod, wystarczy umieścić go w pliku i uzyskać do niego dostęp w przeglądarce za pomocą parametru n=<number>
.
PHP <4.2 (32 bajty):
To jest trochę krótsze:
<?=count(split(1,decbin($n)))-1;
Działa to niezawodnie tylko w PHP <4.2, ponieważ dyrektywa register_globals
została Off
domyślnie ustawiona od PHP4.2 do PHP5.4 (do tego czasu została usunięta).
Jeśli utworzysz php.ini
plik za pomocą register_globals=On
, to zadziała.
Aby użyć kodu, uzyskaj dostęp do pliku za pomocą przeglądarki, używając POST lub GET.
Podał 2 naprawdę dobre sugestie, które mają bardzo ciekawe zastosowanie tej funkcji array_sum
:
38 bajtów:
<?=array_sum(str_split(decbin(1337)));
45 bajtów:
<?=array_sum(preg_split('//', decbin(1337)));
To naprawdę świetny pomysł i można go nieco skrócić, aby miał 36 bajtów:
<?=array_sum(split(1,decbin(1337)));