diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-01-08 11:11:22 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-08 11:11:22 +0000 |
| commit | 8eff148671960ac3baac850e3ac339c60acf3bd3 (patch) | |
| tree | 91199d4e84b9acc55f836f07613ac24eed29d6bf /challenge-042 | |
| parent | 85da800ba04a2d5c8e3204e548ab3ddae7a773dc (diff) | |
| parent | b90f16e25368f3d1632ee8902e44471c0e2e092e (diff) | |
| download | perlweeklychallenge-club-8eff148671960ac3baac850e3ac339c60acf3bd3.tar.gz perlweeklychallenge-club-8eff148671960ac3baac850e3ac339c60acf3bd3.tar.bz2 perlweeklychallenge-club-8eff148671960ac3baac850e3ac339c60acf3bd3.zip | |
Merge pull request #1120 from drclaw1394/master
drclaw/ruben solutions to W42 ch-1 and ch-2. perl and raku
Diffstat (limited to 'challenge-042')
| -rw-r--r-- | challenge-042/ruben-westerberg/README | 7 | ||||
| -rwxr-xr-x | challenge-042/ruben-westerberg/perl/ch-1.sh | 2 | ||||
| -rwxr-xr-x | challenge-042/ruben-westerberg/perl/ch-2.pl | 26 | ||||
| -rwxr-xr-x | challenge-042/ruben-westerberg/raku/ch-1.sh | 2 | ||||
| -rwxr-xr-x | challenge-042/ruben-westerberg/raku/ch-2.p6 | 17 |
5 files changed, 50 insertions, 4 deletions
diff --git a/challenge-042/ruben-westerberg/README b/challenge-042/ruben-westerberg/README index 739bcf2117..860958cfb7 100644 --- a/challenge-042/ruben-westerberg/README +++ b/challenge-042/ruben-westerberg/README @@ -1,13 +1,12 @@ Solution by Ruben Westerberg -ch-1.pl and ch-1.p6 +perl/ch-1.sh and raku/ch-1.sh =================== -Run program to show 'attractive numbers' between 1 and 50 +Run the shell script perl one liner to display octal number from 0 to 50 ch-2.pl and ch-2.p6 =================== -Run program to display the first 20 Leonardo Numbers - +Run the script to generate a random string of '(' and ')' and test if the resulting string has blanaced pairs. An optional argument of the max length of the string can be supplied. Otherwise a max length of 20 characters is used. diff --git a/challenge-042/ruben-westerberg/perl/ch-1.sh b/challenge-042/ruben-westerberg/perl/ch-1.sh new file mode 100755 index 0000000000..81ff2c2b60 --- /dev/null +++ b/challenge-042/ruben-westerberg/perl/ch-1.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +perl -e 'printf "Decimal: %4d Octal: %4o\n",$_,$_ for 0..50'; diff --git a/challenge-042/ruben-westerberg/perl/ch-2.pl b/challenge-042/ruben-westerberg/perl/ch-2.pl new file mode 100755 index 0000000000..b72c777c89 --- /dev/null +++ b/challenge-042/ruben-westerberg/perl/ch-2.pl @@ -0,0 +1,26 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use POSIX qw<round>; + +my $maxLength=$ARGV[0]//20; #If no max on command line use 20 +while () { + my $str=""; + #make a random length string of up to $maxLength long + $str.=chr round rand()+40 for 0..int rand $maxLength; + + my $v=0; + for (split "",$str) { + $v+=(ord($_)-40)*-2+1; + last unless $v >=0; + } + + if($v==0) { + print("balanced: $str\n"); + sleep 1; + next; + } + print("unbalanced: $str\n"); +} + + diff --git a/challenge-042/ruben-westerberg/raku/ch-1.sh b/challenge-042/ruben-westerberg/raku/ch-1.sh new file mode 100755 index 0000000000..828a928e50 --- /dev/null +++ b/challenge-042/ruben-westerberg/raku/ch-1.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +perl6 -e 'printf "Decimal: %4d Octal: %4o\n",$_,$_ for 0..50'; diff --git a/challenge-042/ruben-westerberg/raku/ch-2.p6 b/challenge-042/ruben-westerberg/raku/ch-2.p6 new file mode 100755 index 0000000000..d75b52817d --- /dev/null +++ b/challenge-042/ruben-westerberg/raku/ch-2.p6 @@ -0,0 +1,17 @@ +#!/usr/bin/env perl6 +my $maxLength=@*ARGS[0]//20; #If no max on command line use 20 +while 1 { + my $str=""; + #make a random length string of upto $maxLength long + $str~=(1.rand()+40).round.chr for 0..$maxLength.rand.Int; + my @v= [\+] $str.comb.map({(ord($_)-40)*-2+1}); + + if @v[*-1]==0 and !@v.grep(* < 0) { + put "balanced: $str"; + sleep 1; + next; + } + say "unbalanced: $str"; +} + + |
