For summing to 100, I got all but one with this

#!/usr/bin/env perl use strict; use warnings; use feature 'say'; my @queue = '123456789'; while (@queue) { $_ = shift @queue; say if eval == 100; while ( /\d+?/g) { next if (!$' || $' =~ /\+|\-/); push @queue,("$`$&+$'","$`$&-$'"); } }
123-45-67+89 123+4-5+67-89 123+45-67+8-9 1+2+34-5+67-8+9 1+23-4+5+6+78-9 1+23-4+56+7+8+9 12+3+4+5-6-7+89 12+3-4+5+67+8+9 12-3-4+5-6+7+89 123-4-5-6-7+8-9 1+2+3-4+5+6+78+9

Eventually resorted to this to get the last one

#!/usr/bin/env perl use strict; use warnings; use feature 'say'; my @queue = '123456789'; my %seen; while (@queue) { local $_ = shift @queue; next if (exists $seen{$_}); $seen{$_}++; say if eval == 100; while (/\d+?/g) { my ($pre,$match,$post) = ($`,$&,$'); push @queue, "$pre$match+$post" unless (!$post || $post =~ /[+ +-]/); push @queue, "$pre-$match$post" unless ($pre =~ /[-+]$/ ); } }

I think a better regex solution exists, this re-evaluates too many times. I used structure from tybalt89's Re: Parks Puzzle.

With '1234567891234' 1222 solutions

With '12345678912345' 3080 solutions


In reply to Re: Sum to 100 at Rosetta Code by trippledubs
in thread Sum to 100 at Rosetta Code by choroba

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.