[Date Prev][Date Next][Thread Prev][Thread Next]
[Search]
[Date Index]
[Thread Index]
Re: [FWP] 100 point words.
>
> Last summer my son came home with an assignment to find as many words as
> he could that add up to 100 points. With A=1, B=2, ... Z=26
>
> We were going on vacation that week and had 2 10 hour drives in the
> car. At the end of the 20 hours, we had 4 or 5 words that added up to
> 100. PRINTER is a word that adds up to 100.
>
> Well, it was driving me nuts so I told him that when we got back, i'd
> write a Perl program to figure this out for us. The kid who found the
> most words got a prize :-) [motivation]...
>
> Anyway, I wrote a program in about 15 minutes with about 20 lines of
> code. We ran it against several dictionary files and came up with 10
> 4-column pages with words that add up to 100!
>
> It would be fun to create such a program and run it against a
> "standard/common" dictionary and see who could do it in the coolest, or
> shortest, way...
One way:
#!/usr/local/bin/perl -wn
BEGIN { @lp{ 'a' .. 'z' } = ( 1 .. 26 ); }
chomp;
/[^a-z]/i or # skip words with non-alphabetic characters.
eval join( '+', @lp{ split //, lc } ) .
' == 100 and print "$_\n"';
Another (similar) way:
#!/usr/local/bin/perl -wn
BEGIN { @lp{ 'a' .. 'z' } = ( 1 .. 26 ); }
do {
local $_ = $_;
y/a-zA-Z//dc;
s/(?<=\w)(?=\w)/+/g;
s/(\w)/$lp{lc($1)}/g;
eval "$_ == 100"
} and print;
--
John Porter
==== Want to unsubscribe from Fun With Perl? Well, if you insist...
==== Send email to <fwp-request@technofile.org> with message _body_
==== unsubscribe