diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-11-07 18:06:02 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-07 18:06:02 +0000 |
| commit | a7ff5d878f103a6f4f5f3a2109e38c12a39af76e (patch) | |
| tree | 8328ad957ddf4b0a7a22df564efafdfb5452dece /challenge-137 | |
| parent | 1fc81d22bdd0c68dd2bd361122a739864272222b (diff) | |
| parent | 6dc2a9b7a6c0e46e59e0341b4d2f2a0ca81c3a5e (diff) | |
| download | perlweeklychallenge-club-a7ff5d878f103a6f4f5f3a2109e38c12a39af76e.tar.gz perlweeklychallenge-club-a7ff5d878f103a6f4f5f3a2109e38c12a39af76e.tar.bz2 perlweeklychallenge-club-a7ff5d878f103a6f4f5f3a2109e38c12a39af76e.zip | |
Merge pull request #5174 from E7-87-83/newt
Challenge 137
Diffstat (limited to 'challenge-137')
| -rw-r--r-- | challenge-137/cheok-yin-fung/java/LongYear.java | 42 | ||||
| -rw-r--r-- | challenge-137/cheok-yin-fung/julia/ch-1.jl | 19 | ||||
| -rw-r--r-- | challenge-137/cheok-yin-fung/perl/ch-1.pl | 35 | ||||
| -rw-r--r-- | challenge-137/cheok-yin-fung/perl/ch-2.pl | 33 |
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"; |
