Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
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 examining the Monastery: (6)
As of 2015-07-06 03:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (70 votes), past polls