aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-137/cheok-yin-fung/java/LongYear.java42
-rw-r--r--challenge-137/cheok-yin-fung/julia/ch-1.jl19
-rw-r--r--challenge-137/cheok-yin-fung/perl/ch-1.pl35
-rw-r--r--challenge-137/cheok-yin-fung/perl/ch-2.pl33
4 files changed, 129 insertions, 0 deletions
diff --git a/challenge-137/cheok-yin-fung/java/LongYear.java b/challenge-137/cheok-yin-fung/java/LongYear.java
new file mode 100644
index 0000000000..b49f69355c
--- /dev/null
+++ b/challenge-137/cheok-yin-fung/java/LongYear.java
@@ -0,0 +1,42 @@
+// The Weekly Challenge - 137
+// Task 1 Long Year
+// Usage: java LongYear
+
+import java.time.LocalDate;
+import java.time.YearMonth;
+
+public class LongYear
+{
+ public static void main(String[] args)
+ {
+ int c = 0;
+ for(int y = 1900; y <= 2100; y++)
+ {
+ LocalDate fourthJan = LocalDate.of(y, 1, 4);
+ int a = gdow( (fourthJan.getDayOfWeek()).toString() );
+ LocalDate YearLastDay = LocalDate.of(y, 12, 31);
+ int b = gdow( (YearLastDay.getDayOfWeek()).toString() );
+ if (a >= 4 && b >= 4)
+ {
+ System.out.println(y);
+ c++;
+ }
+ }
+ System.out.println("Number of Long Years: " + c);
+ }
+
+ public static int gdow(String a)
+ {
+ switch(a)
+ {
+ case "MONDAY": return 1;
+ case "TUESDAY": return 2;
+ case "WEDNESDAY": return 3;
+ case "THURSDAY": return 4;
+ case "FRIDAY": return 5;
+ case "SATURDAY": return 6;
+ case "SUNDAY": return 7;
+ }
+ return 0;
+ }
+}
diff --git a/challenge-137/cheok-yin-fung/julia/ch-1.jl b/challenge-137/cheok-yin-fung/julia/ch-1.jl
new file mode 100644
index 0000000000..f4c3349c20
--- /dev/null
+++ b/challenge-137/cheok-yin-fung/julia/ch-1.jl
@@ -0,0 +1,19 @@
+# The Weekly Challenge Week 137
+# Task 1 Long Year
+# Usage: include("ch-1.jl")
+
+using Dates
+
+t(y) = Date(y, 1, 4)
+e(y) = Date(y, 12, 31)
+
+global c = 0;
+
+for y = 1900:2100
+ if Dates.week(e(y)) - Dates.week(t(y)) == 52
+ println(y)
+ global c = c+1
+ end
+end
+
+println("Number of Long Years: " , c)
diff --git a/challenge-137/cheok-yin-fung/perl/ch-1.pl b/challenge-137/cheok-yin-fung/perl/ch-1.pl
new file mode 100644
index 0000000000..7324e71726
--- /dev/null
+++ b/challenge-137/cheok-yin-fung/perl/ch-1.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+# The Weekly Challenge 137
+# Task 1 Long Year
+# Usage: ch-1.pl
+use v5.12.0;
+use warnings;
+use Time::Local qw 'timegm_nocheck';
+
+my $c = 0;
+for my $y (1900..2100) {
+ my %wday = (
+ "Mon" => 1,
+ "Tue" => 2,
+ "Wed" => 3,
+ "Thu" => 4,
+ "Fri" => 5,
+ "Sat" => 6,
+ "Sun" => 7,
+ );
+
+ my $fourthJan = localtime timegm_nocheck 0, 0, 0, 4, 0, $y;
+
+ my $a = $wday{(split " ", $fourthJan)[0]};
+
+ my $yearLastDay = localtime timegm_nocheck 0, 0, 0, 31, 11, $y;
+
+ my $b = $wday{(split " ", $yearLastDay)[0]};
+
+ if ($a >= 4 && $b >= 4) {
+ say $y;
+ $c++;
+ }
+}
+
+say "Number of Long Years: $c";
diff --git a/challenge-137/cheok-yin-fung/perl/ch-2.pl b/challenge-137/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..91d6d9bf66
--- /dev/null
+++ b/challenge-137/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+# The Weekly Challenge 137
+# Task 2 Lychrel Number
+# Usage: $ ch-2.pl $n
+use v5.12.0;
+use warnings;
+use Test::More tests => 5;
+
+say lych($ARGV[0]) if defined($ARGV[0]);
+
+
+
+sub lych {
+ my $itor = 0;
+ my $num = $_[0];
+
+ while ( (reverse $num) ne $num
+ && $itor < 500
+ && $num < 10_000_000
+ ) {
+ $num = $num + reverse $num;
+ }
+
+ return( ((reverse $num) eq $num )? 0 : 1 );
+}
+
+
+
+ok lych(56) == 0, "Example 1";
+ok lych(57) == 0, "Example 2";
+ok lych(59) == 0, "Example 3";
+ok lych(1001) == 0, "itself palindrome";
+ok lych(196) == 1, "famous 196 undetermined";