http://www.perlmonks.org?node_id=87768


in reply to (Golf) Giving Change

Here's my entry at 67:
#2345678901234567890123456789012345678901234567890123456789012345678 sub c{($t,$p)=@_;for(reverse@$p){until($t<$_){push@r,$_;$t-=$_}}@r}
Based on tadman's original.

update

boo_radley just pointed out this is in fact 54. Where do I find the rules to this sport?

-- iakobski

Replies are listed 'Best First'.
Re: Re: (Golf) Giving Change
by MeowChow (Vicar) on Jun 12, 2001 at 20:22 UTC
    I'm not sure how boo_radley counted 54 - it's actually 60. You count only the characters inside the sub. You should also add three characters to reset @r (thereby making this sub usable more than once).

    Anyway, here's a solution at 54:

    sub c{($t,$p)=@_;map{$t-=($x=int$t/$_)*$_;($_)x$x}reverse@$p}
       MeowChow                                   
                   s aamecha.s a..a\u$&owag.print