Nice ... It took me a sec to notice it was | and not ||. You can shave off a char by replacing "@_" with pop. I tried to save more, but each time I came up with the same # of chars, just a different way to do it. It almost looks obfuscated now : ), but here's a solution at 54:
sub k {
$_=$-x3|pop;!/495/&&1+k(-($_=join$k,sort/./g)+reverse)
}
Update:Nice catch Sean. I tested it, just not against numbers like 100 233. It looks like the am wins then, unless that can be beaten.
The 15 year old, freshman programmer,
Stephen Rawls | [reply] [Watch: Dir/Any] [d/l] |
Nope, you can't use pop, unless you use it like this: "@{[pop]}" .. The quotes turn it into a string instead of an integer, so the | does a bitstring or instead of a numeric or. If either of the operands are numeric, you'll get the numeric or:
perl -we 'print "000"|1'
1
that doesn't work for us, we need this:
perl -we 'print "000"|"1"'
100
--sean
and yeah, i came up with a handful of slightly different attempts that all came in at 55 too. | [reply] [Watch: Dir/Any] [d/l] [select] |