From e1be58c031b88fac71619c64d111af0060067bed Mon Sep 17 00:00:00 2001 From: Stephen Lynn Date: Fri, 18 Nov 2022 17:49:37 +0800 Subject: pwc 191 --- challenge-191/steve-g-lynn/blog.txt | 1 + challenge-191/steve-g-lynn/perl/ch-1.pl | 14 ++++++++++++++ challenge-191/steve-g-lynn/perl/ch-2.pl | 23 +++++++++++++++++++++++ challenge-191/steve-g-lynn/raku/ch-1.p6 | 13 +++++++++++++ challenge-191/steve-g-lynn/raku/ch-2.p6 | 16 ++++++++++++++++ 5 files changed, 67 insertions(+) create mode 100644 challenge-191/steve-g-lynn/blog.txt create mode 100755 challenge-191/steve-g-lynn/perl/ch-1.pl create mode 100755 challenge-191/steve-g-lynn/perl/ch-2.pl create mode 100755 challenge-191/steve-g-lynn/raku/ch-1.p6 create mode 100755 challenge-191/steve-g-lynn/raku/ch-2.p6 diff --git a/challenge-191/steve-g-lynn/blog.txt b/challenge-191/steve-g-lynn/blog.txt new file mode 100644 index 0000000000..b3f971af51 --- /dev/null +++ b/challenge-191/steve-g-lynn/blog.txt @@ -0,0 +1 @@ +https://thiujiac.blogspot.com/2022/11/pwc-191.html diff --git a/challenge-191/steve-g-lynn/perl/ch-1.pl b/challenge-191/steve-g-lynn/perl/ch-1.pl new file mode 100755 index 0000000000..71881188b0 --- /dev/null +++ b/challenge-191/steve-g-lynn/perl/ch-1.pl @@ -0,0 +1,14 @@ +#!/usr/bin/env perl + + +print &twice_largest(1,2,3,4),"\n"; #-1 +print &twice_largest(1,2,0,5),"\n"; #1 +print &twice_largest(2,6,3,1),"\n"; #1 +print &twice_largest(4,5,2,3),"\n"; #-1 + +sub twice_largest { + my (@list)=@_; + my @sorted_list = sort {$b <=> $a} @list; + (($sorted_list[0]) >= (2*$sorted_list[1])) ? 1 : (-1); +} + diff --git a/challenge-191/steve-g-lynn/perl/ch-2.pl b/challenge-191/steve-g-lynn/perl/ch-2.pl new file mode 100755 index 0000000000..c00f5fadc9 --- /dev/null +++ b/challenge-191/steve-g-lynn/perl/ch-2.pl @@ -0,0 +1,23 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use Algorithm::Permute qw(permute); + +print &cute_list(2),"\n"; #2 + +sub cute_list { + my ($n)=@_; + my @list=(1 .. $n); + my $ctr=0; + + permute { + for my $j (1 .. $n) { + (( ($list[$j-1] % $j) == 0) || ( ($j % $list[$j-1]) == 0)) || last; + ($j==$n) && ($ctr++); + } + } @list; + $ctr; +} + diff --git a/challenge-191/steve-g-lynn/raku/ch-1.p6 b/challenge-191/steve-g-lynn/raku/ch-1.p6 new file mode 100755 index 0000000000..a339d7fe37 --- /dev/null +++ b/challenge-191/steve-g-lynn/raku/ch-1.p6 @@ -0,0 +1,13 @@ +#!/usr/bin/env perl6 + + +say &twice-largest([1,2,3,4]); #-1 +say &twice-largest([1,2,0,5]); #1 +say &twice-largest([2,6,3,1]); #1 +say &twice-largest([4,5,2,3]); #-1 + +sub twice-largest (@list) { + my @sorted_list = @list.sort({$^b <=> $^a}); + ((@sorted_list[0]) >= (2*@sorted_list[1])) ?? 1 !! (-1); +} + diff --git a/challenge-191/steve-g-lynn/raku/ch-2.p6 b/challenge-191/steve-g-lynn/raku/ch-2.p6 new file mode 100755 index 0000000000..35ad8df257 --- /dev/null +++ b/challenge-191/steve-g-lynn/raku/ch-2.p6 @@ -0,0 +1,16 @@ +#!/usr/bin/env perl6 + +say &cute-list(2); #2 + +sub cute-list (Int $n) { + my @list=(1 .. $n); + my $ctr=0; + for (@list.permutations) -> @i { + for (1 .. @i.elems) -> $j { + ((@i[$j-1] %% $j) || ($j %% @i[$j-1])) || last; + ($j==$n) && ($ctr++); + } + } + $ctr; +} + -- cgit