diff options
| -rw-r--r-- | challenge-163/polettix/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-163/polettix/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-163/polettix/perl/ch-1.pl | 17 | ||||
| -rw-r--r-- | challenge-163/polettix/perl/ch-2.pl | 12 | ||||
| -rw-r--r-- | challenge-163/polettix/raku/ch-1.raku | 10 | ||||
| -rw-r--r-- | challenge-163/polettix/raku/ch-2.raku | 8 |
6 files changed, 49 insertions, 0 deletions
diff --git a/challenge-163/polettix/blog.txt b/challenge-163/polettix/blog.txt new file mode 100644 index 0000000000..2ad47f59a7 --- /dev/null +++ b/challenge-163/polettix/blog.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2022/05/03/pwc163-sum-bitwise-operator/ diff --git a/challenge-163/polettix/blog1.txt b/challenge-163/polettix/blog1.txt new file mode 100644 index 0000000000..70e17726f9 --- /dev/null +++ b/challenge-163/polettix/blog1.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2022/05/04/pwc163-summations/ diff --git a/challenge-163/polettix/perl/ch-1.pl b/challenge-163/polettix/perl/ch-1.pl new file mode 100644 index 0000000000..8420a8cda2 --- /dev/null +++ b/challenge-163/polettix/perl/ch-1.pl @@ -0,0 +1,17 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; +no warnings 'experimental::signatures'; + +say sum_bitwise(@ARGV); + +sub sum_bitwise (@n) { + return 0 if @n == 0; + return $n[0] if @n == 1; + my $retval = 0; + for my $i (0 .. $#n - 1) { + $retval += $n[$i] & $n[$_] for $i + 1 .. $#n; + } + return $retval; +} diff --git a/challenge-163/polettix/perl/ch-2.pl b/challenge-163/polettix/perl/ch-2.pl new file mode 100644 index 0000000000..1946b120fa --- /dev/null +++ b/challenge-163/polettix/perl/ch-2.pl @@ -0,0 +1,12 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; +no warnings 'experimental::signatures'; + +say summations(@ARGV); + +sub summations (@n) { + for (2 .. $#n) { $n[$_] += $n[$_ - 1] for $_ .. $#n } + return $n[-1]; +} diff --git a/challenge-163/polettix/raku/ch-1.raku b/challenge-163/polettix/raku/ch-1.raku new file mode 100644 index 0000000000..8d8a95c88f --- /dev/null +++ b/challenge-163/polettix/raku/ch-1.raku @@ -0,0 +1,10 @@ +#!/usr/bin/env raku +use v6; +sub MAIN (*@n) { put sb(|@n) } + +multi sub sb () { 0 } +multi sub sb ($n) { $n } +multi sub sb ($n, $m) { $n +& $m } +multi sub sb ($n, *@r) { sbf($n, |@r) + sb(|@r) } +multi sub sbf ($n, $m) { sb($n, $m) } +multi sub sbf ($n, $m, *@r) { sb($n, $m) + sbf($n, |@r) } diff --git a/challenge-163/polettix/raku/ch-2.raku b/challenge-163/polettix/raku/ch-2.raku new file mode 100644 index 0000000000..be9e6d1b44 --- /dev/null +++ b/challenge-163/polettix/raku/ch-2.raku @@ -0,0 +1,8 @@ +#!/usr/bin/env raku +use v6; +sub MAIN (*@n) { put summations(@n) } + +sub summations (@n is copy) { + for 2 .. @n.end { @n[$_] += @n[$_ - 1] for $_ .. @n.end } + return @n[*-1]; +} |
