PHP (38 byte):
Ini menggunakan pendekatan yang sama dengan jawaban ES6 saya
<?=count(split(1,decbin($_GET[n])))-1;
Ini adalah kode lengkap, Anda hanya perlu memasukkannya ke dalam file dan mengaksesnya melalui browser, dengan parameter n=<number>
.
PHP <4.2 (32 byte):
Ini sedikit lebih pendek:
<?=count(split(1,decbin($n)))-1;
Ini hanya berfungsi dengan baik pada PHP <4.2 karena arahan register_globals
diatur ke Off
default dari PHP4.2 hingga PHP5.4 (yang telah dihapus saat itu).
Jika Anda membuat php.ini
file dengan register_globals=On
, ini akan berfungsi.
Untuk menggunakan kode, akses file menggunakan browser, dengan POST atau GET.
Dia memberikan 2 saran yang sangat bagus yang memiliki fungsi penggunaan yang sangat menarik array_sum
:
38 byte:
<?=array_sum(str_split(decbin(1337)));
45 byte:
<?=array_sum(preg_split('//', decbin(1337)));
Ini adalah ide yang sangat bagus dan dapat dipersingkat lebih lama, menjadi 36 byte:
<?=array_sum(split(1,decbin(1337)));