Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: fibo's 66 chars

by pepik_knize (Scribe)
on May 26, 2009 at 05:28 UTC ( #766127=note: print w/ replies, xml ) Need Help??


in reply to fibo's 66 chars

I agree, very nice. If you're golfing this, I have a few reductions for you:

You can save yourself a couple of characters by using pop instead of shift.

Also, if you use -l, you can get rid of the quotes and newline:
$a=pop;@b=(0,1);push@b,$b[-2]+$b[-1]while$#b<$a;print$b[-2]

Then, you can cut down the while$#b<$a by using for(2..$a):
$a=pop;@b=(0,1);push@b,$b[-2]+$b[-1]for(2..$a);print$b[-2]

Of all the causes that conspire to blind
Man's erring judgment, and misguide the mind,
What the weak head with strongest bias rules,
Is pride, the never-failing vice of fools.
-- Pope.


Comment on Re: fibo's 66 chars
Select or Download Code
Re^2: fibo's 66 chars
by Roy Johnson (Monsignor) on May 27, 2009 at 21:17 UTC
    Since you only use the parameter once, it's cheaper to just reference it as $ARGV[0] pop it inline rather than assign it to anything.
    @b=(0,1);push@b,$b[-2]+$b[-1]for 2..pop;print$b[-2]
    You can save fourteen more strokes (and, irrelevantly, memory) by not using an array and using convoluted scalar assignment with a variable that is pre-initialized:
    $b=1;$?=($b+=$?)-$?for 2..pop;print$?

    Caution: Contents may have been coded under pressure.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://766127]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (10)
As of 2014-08-20 14:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (114 votes), past polls