|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Babanov 2:5020/5609.69 21 Feb 2001 22:52:37 To : All Subject : Задачка ;) --------------------------------------------------------------------------------
Тут жену как-то спросили как на сях посчитать число еденичек в бинарном
представлении числа. Hу, на сях писать было в ломы, я решил попробовать
на эхотаге. Вот более-менее отличающиеся друг от друга варианты:
print scalar grep {$_} split //, unpack 'B16', pack 'i', 666;
$x = 666; while($x) { $c += $x%2; $x >>= 1; } print $c;
$x = unpack 'B16', pack 'i', 666; print $x =~ tr/1//;
while(sprintf("%b", 666) =~ /1/g) { $c++; } print $c;
@{[(sprintf '%b', 666) =~ /1(?{$c++})/g]}; print $c;
$x = sprintf "%b", 666; print $x =~ tr/1//;
print ++$#{[(sprintf '%b', 666) =~ /1/g]};
Предлагается придумать новые или сократить эти ;) Особенно интересуют
менее очевидные варианты.
ЪДВїЪДВВВДДДщщъъ ЪДВВВДї ЪїЪДВДДДДДДДДщщъъ ЪДДДД 2:5020/5609.69 ДДДї
іВіАґДЕ ґBabanov іВі ґВі іАґВіST BERSERKER і babanov@earthlink.net і
... Еще наше поколение будет жить при Виагре! [предп. из писем Ильича к HКК]
---
* Origin: Our governor can beat up your governor! (2:5020/5609.69)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/47303a949401.html, оценка из 5, голосов 10
|