diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-02-11 11:03:26 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-11 11:03:26 +0000 |
| commit | 71218d14d0f8df1d2933ac1944c62dbc21fd84ec (patch) | |
| tree | a88777aa762f4aa47a326922d7f23fa757d92a7c | |
| parent | e9d030e5fd8fa107797fac1489bca6ce2724d212 (diff) | |
| parent | 51577219a07ba3e9f49aaa4e0ec88ae77961702c (diff) | |
| download | perlweeklychallenge-club-71218d14d0f8df1d2933ac1944c62dbc21fd84ec.tar.gz perlweeklychallenge-club-71218d14d0f8df1d2933ac1944c62dbc21fd84ec.tar.bz2 perlweeklychallenge-club-71218d14d0f8df1d2933ac1944c62dbc21fd84ec.zip | |
Merge pull request #11562 from deadmarshal/TWC304
TWC304
| -rw-r--r-- | challenge-304/deadmarshal/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-304/deadmarshal/java/Ch1.java | 14 | ||||
| -rw-r--r-- | challenge-304/deadmarshal/java/Ch2.java | 17 | ||||
| -rw-r--r-- | challenge-304/deadmarshal/modula-3/ch1/src/Ch1.m3 | 22 | ||||
| -rw-r--r-- | challenge-304/deadmarshal/modula-3/ch1/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-304/deadmarshal/modula-3/ch2/src/Ch2.m3 | 29 | ||||
| -rw-r--r-- | challenge-304/deadmarshal/modula-3/ch2/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-304/deadmarshal/perl/ch-1.pl | 13 | ||||
| -rw-r--r-- | challenge-304/deadmarshal/perl/ch-2.pl | 20 |
9 files changed, 126 insertions, 0 deletions
diff --git a/challenge-304/deadmarshal/blog.txt b/challenge-304/deadmarshal/blog.txt new file mode 100644 index 0000000000..f09eac24a6 --- /dev/null +++ b/challenge-304/deadmarshal/blog.txt @@ -0,0 +1 @@ +https://deadmarshal.blogspot.com/2025/02/twc304.html diff --git a/challenge-304/deadmarshal/java/Ch1.java b/challenge-304/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..2dc974388d --- /dev/null +++ b/challenge-304/deadmarshal/java/Ch1.java @@ -0,0 +1,14 @@ +public class Ch1 { + public static void main(String[] args) { + System.out.println(arrange_binary(new int[]{1, 0, 0, 0, 1}, 1)); + System.out.println(arrange_binary(new int[]{1, 0, 0, 0, 1}, 2)); + } + + private static boolean arrange_binary(int[] nums, int n) { + int c = 0; + for (int i = 0; i < nums.length - 1; ++i) + if (nums[i] == 0 && nums[i + 1] == 0) c++; + return c > n; + } +} + diff --git a/challenge-304/deadmarshal/java/Ch2.java b/challenge-304/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..4e28cacb96 --- /dev/null +++ b/challenge-304/deadmarshal/java/Ch2.java @@ -0,0 +1,17 @@ +public class Ch2 { + public static void main(String[] args) { + System.out.println(maximum_average(new int[]{1, 12, -5, -6, 50, 3}, 4)); + System.out.println(maximum_average(new int[]{5}, 1)); + } + + private static double maximum_average(int[] nums, int n) { + double max = 0, avg; + for (int start = 0; start <= nums.length - n; ++start) { + double subsum = 0; + for (int i = start; i < start + n; ++i) subsum += nums[i]; + avg = subsum / n; + if (avg > max) max = avg; + } + return max; + } +} diff --git a/challenge-304/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-304/deadmarshal/modula-3/ch1/src/Ch1.m3 new file mode 100644 index 0000000000..666683ecee --- /dev/null +++ b/challenge-304/deadmarshal/modula-3/ch1/src/Ch1.m3 @@ -0,0 +1,22 @@ +MODULE Ch1 EXPORTS Main; + +IMPORT SIO; + +VAR + A := ARRAY[0..4] OF INTEGER{1,0,0,0,1}; + +PROCEDURE ArrangeBinary(VAR A:ARRAY OF INTEGER; + READONLY N:INTEGER):BOOLEAN = + VAR Count:INTEGER; + BEGIN + FOR I := FIRST(A) TO LAST(A)-1 DO + IF A[I] = 0 AND A[I+1] = 0 THEN INC(Count) END + END; + RETURN Count > N + END ArrangeBinary; + +BEGIN + SIO.PutBool(ArrangeBinary(A,1)); SIO.Nl(); + SIO.PutBool(ArrangeBinary(A,2)); SIO.Nl() +END Ch1. + diff --git a/challenge-304/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-304/deadmarshal/modula-3/ch1/src/m3makefile new file mode 100644 index 0000000000..9f66e4a51f --- /dev/null +++ b/challenge-304/deadmarshal/modula-3/ch1/src/m3makefile @@ -0,0 +1,5 @@ +import("libm3") +import("libsio") +implementation("Ch1") +program("ch1") + diff --git a/challenge-304/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-304/deadmarshal/modula-3/ch2/src/Ch2.m3 new file mode 100644 index 0000000000..61283fa8ff --- /dev/null +++ b/challenge-304/deadmarshal/modula-3/ch2/src/Ch2.m3 @@ -0,0 +1,29 @@ +MODULE Ch2 EXPORTS Main; + +IMPORT SIO; + +VAR + A1 := ARRAY[0..5] OF INTEGER{1,12,-5,-6,50,3}; + A2 := ARRAY[0..0] OF INTEGER{5}; + +PROCEDURE MaximumAverage(VAR A:ARRAY OF INTEGER; + READONLY N:INTEGER):LONGREAL = + VAR + Max,SubSum,Avg:LONGREAL; + BEGIN + FOR Start := FIRST(A) TO NUMBER(A) - N DO + FOR I := Start TO Start+N-1 DO + SubSum := SubSum + FLOAT(A[I],LONGREAL) + END; + Avg := SubSum / FLOAT(N,LONGREAL); + IF Avg > Max THEN Max := Avg END; + SubSum := 0.0D0; + END; + RETURN Max + END MaximumAverage; + +BEGIN + SIO.PutLongReal(MaximumAverage(A1,4)); SIO.Nl(); + SIO.PutLongReal(MaximumAverage(A2,1)); SIO.Nl() +END Ch2. + diff --git a/challenge-304/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-304/deadmarshal/modula-3/ch2/src/m3makefile new file mode 100644 index 0000000000..798c627ef3 --- /dev/null +++ b/challenge-304/deadmarshal/modula-3/ch2/src/m3makefile @@ -0,0 +1,5 @@ +import("libm3") +import("libsio") +implementation("Ch2") +program("ch2") + diff --git a/challenge-304/deadmarshal/perl/ch-1.pl b/challenge-304/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..a2ab4bb138 --- /dev/null +++ b/challenge-304/deadmarshal/perl/ch-1.pl @@ -0,0 +1,13 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +sub arrange_binary{ + my $c = 0; + map{$c++ if $_[0]->[$_] == 0 && $_[0]->[$_+1] == 0} 0..$#{$_[0]}-1; + $c > $_[1] +} + +printf "%d\n",arrange_binary([1,0,0,0,1],1); +printf "%d\n",arrange_binary([1,0,0,0,1],2); + diff --git a/challenge-304/deadmarshal/perl/ch-2.pl b/challenge-304/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..4860fe580d --- /dev/null +++ b/challenge-304/deadmarshal/perl/ch-2.pl @@ -0,0 +1,20 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::Util qw(sum0 min); +use feature qw(say); + +sub maximum_average{ + my ($arr,$n) = @_; + my $max = min @$arr; + foreach my $start(0..@$arr-$n){ + my $subsum = sum0(@{$arr}[$start..$start+$n-1]); + my $avg = $subsum / $n; + $max = $avg if $avg > $max + } + $max +} + +say maximum_average([1,12,-5,-6,50,3],4); +say maximum_average([5],1); + |
