Merge two expressions into one, saving 2 more characters.
#!perl -l
$z=pop;$_=1;while($z){s|0$||;$_=$_*$z--%1e9}print chop;
|
#!perl -l
$z=pop;$_=1;while($z){$_*=$z--;s|0$||;$_%=1e9}print chop;
|
Use $_. Duh.
#!perl -l
$z=pop;$_=1;while($z){$_*=$z--;s/0*$//;$_%=1e9}print$_%10;
|
Minor tweaks to variable names to improve tiebreaker values
#!perl -l
$z=pop;$y=1;while($z){$y*=$z--;$y=~s/0*$//;$y%=1e6}print chop$y;
|
Realized I left a 2-character piece of the previous regex version.
#!perl -l
$a=pop;$b=1;while($a){$b*=$a--;$b=~s/0*$//;$b%=1e6}print chop$b;
|
Second working version; first had a longer regexp to strip it down to 6 characters max instead of the %=.
#!perl -l
$a=pop;$b=1;while($a){$b*=$a--;$b=~s/0*$/$1/;$b%=1e6}print chop$b;
|