aboutsummaryrefslogtreecommitdiff
path: root/challenge-048
diff options
context:
space:
mode:
authorRoger Bell_West <roger@firedrake.org>2020-02-18 10:54:03 +0000
committerRoger Bell_West <roger@firedrake.org>2020-02-18 10:54:03 +0000
commitbe22f9d90a526e463e2fab9c8a18a659d4bdb4d8 (patch)
tree30b33b3805bf5b1758034509b2f9d1f4233d9cb5 /challenge-048
parent31beb31618ad94e42890e8f2c88a853095889e72 (diff)
downloadperlweeklychallenge-club-be22f9d90a526e463e2fab9c8a18a659d4bdb4d8.tar.gz
perlweeklychallenge-club-be22f9d90a526e463e2fab9c8a18a659d4bdb4d8.tar.bz2
perlweeklychallenge-club-be22f9d90a526e463e2fab9c8a18a659d4bdb4d8.zip
Solutions for challenge #48.
Diffstat (limited to 'challenge-048')
-rwxr-xr-xchallenge-048/roger-bell-west/perl5/ch-1.pl17
-rwxr-xr-xchallenge-048/roger-bell-west/perl5/ch-2.pl15
-rwxr-xr-xchallenge-048/roger-bell-west/perl5/ch-2a.pl22
-rwxr-xr-xchallenge-048/roger-bell-west/perl6/ch-1.p614
-rwxr-xr-xchallenge-048/roger-bell-west/perl6/ch-2.p619
5 files changed, 87 insertions, 0 deletions
diff --git a/challenge-048/roger-bell-west/perl5/ch-1.pl b/challenge-048/roger-bell-west/perl5/ch-1.pl
new file mode 100755
index 0000000000..26d45b9293
--- /dev/null
+++ b/challenge-048/roger-bell-west/perl5/ch-1.pl
@@ -0,0 +1,17 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+
+my @list=(1..50);
+my $n=0;
+
+while (scalar @list > 1) {
+ $n++;
+ if ($n>$#list) {
+ $n=0;
+ }
+ splice @list,$n,1;
+}
+
+print $list[0],"\n";
diff --git a/challenge-048/roger-bell-west/perl5/ch-2.pl b/challenge-048/roger-bell-west/perl5/ch-2.pl
new file mode 100755
index 0000000000..a150104c99
--- /dev/null
+++ b/challenge-048/roger-bell-west/perl5/ch-2.pl
@@ -0,0 +1,15 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+
+use POSIX qw(strftime);
+
+my $format='%m%d%Y';
+
+foreach my $d (10957..376199) {
+ my $u=strftime($format,gmtime($d*86400));
+ if ((scalar reverse $u) eq $u) {
+ print "$u\n";
+ }
+}
diff --git a/challenge-048/roger-bell-west/perl5/ch-2a.pl b/challenge-048/roger-bell-west/perl5/ch-2a.pl
new file mode 100755
index 0000000000..100a546b63
--- /dev/null
+++ b/challenge-048/roger-bell-west/perl5/ch-2a.pl
@@ -0,0 +1,22 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+
+foreach my $y (2000..2999) {
+ foreach my $m (1..12) {
+ foreach my $d (1..31) {
+ if ($d==31 && ($m==4 || $m==6 || $m==9 || $m==11)) {
+ next;
+ } elsif ($m==2 && $d==30) {
+ next;
+ } elsif ($m==2 && $d==29 && ($y % 4 != 0 || ($y % 100 == 0 && $y % 400 != 0))) {
+ next;
+ }
+ my $u=sprintf('%02d%02d%04d',$m,$d,$y);
+ if ($u eq scalar reverse $u) {
+ print "$u\n";
+ }
+ }
+ }
+}
diff --git a/challenge-048/roger-bell-west/perl6/ch-1.p6 b/challenge-048/roger-bell-west/perl6/ch-1.p6
new file mode 100755
index 0000000000..c175608b13
--- /dev/null
+++ b/challenge-048/roger-bell-west/perl6/ch-1.p6
@@ -0,0 +1,14 @@
+#! /usr/bin/perl6
+
+my @list=(1..50);
+my $n=0;
+
+while (@list.elems > 1) {
+ $n++;
+ if ($n>@list.end) {
+ $n=0;
+ }
+ splice @list,$n,1;
+}
+
+say @list[0];
diff --git a/challenge-048/roger-bell-west/perl6/ch-2.p6 b/challenge-048/roger-bell-west/perl6/ch-2.p6
new file mode 100755
index 0000000000..383ef76eea
--- /dev/null
+++ b/challenge-048/roger-bell-west/perl6/ch-2.p6
@@ -0,0 +1,19 @@
+#! /usr/bin/perl6
+
+for 2000..2999 -> $y {
+ for 1..12 -> $m {
+ for 1..31 -> $d {
+ if ($d==31 && ($m==4 || $m==6 || $m==9 || $m==11)) {
+ next;
+ } elsif ($m==2 && $d==30) {
+ next;
+ } elsif ($m==2 && $d==29 && ($y % 4 != 0 || ($y % 100 == 0 && $y % 400 != 0))) {
+ next;
+ }
+ my $u=sprintf('%02d%02d%04d',$m,$d,$y);
+ if ($u eq $u.flip) {
+ say $u;
+ }
+ }
+ }
+} \ No newline at end of file