Verrrry cool idea... this can actually come down to 56:
sub k {
$_="000"|"@_";/495/?0:1+k(-($_=join'',sort/./g)+reverse)
}
The interesting thing about this is that it's not the same as right-formatting the number via sprintf, since the 0 goes to the back, but it doesn't matter because the digits are reordered anyway.
MeowChow
s aamecha.s a..a\u$&owag.print | [reply] [d/l] |
Yeah, i realized the whole @{[pop]} bit wasn't needed about 20 miles from home, figured someone would've already noticed it by the time i got back..
Here's one more:
sub k {
$_=0 x3|"@_";/495/?0:1+k(-($_=join'',sort/./g)+reverse)
}
55
--sean | [reply] [d/l] [select] |
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] [d/l] |