diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-05-06 15:24:26 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-06 15:24:26 +0100 |
| commit | 1fa41ffd3abb48439d78b14a2ab264bf88a1e754 (patch) | |
| tree | 4a3cb2b1c5d9a76f52541667ff5d9339c9b0f5cf | |
| parent | 2ab682891231239b69b797be4d6502ee076cb5a5 (diff) | |
| parent | 7e287363f2947539bc24be8a61457b08037ca4f6 (diff) | |
| download | perlweeklychallenge-club-1fa41ffd3abb48439d78b14a2ab264bf88a1e754.tar.gz perlweeklychallenge-club-1fa41ffd3abb48439d78b14a2ab264bf88a1e754.tar.bz2 perlweeklychallenge-club-1fa41ffd3abb48439d78b14a2ab264bf88a1e754.zip | |
Merge pull request #11977 from deadmarshal/TWC320
TWC320
| -rw-r--r-- | challenge-320/deadmarshal/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/erlang/ch1.erl | 15 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/erlang/ch2.erl | 21 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/gleam/ch1/.gitignore | 4 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/gleam/ch1/README.md | 24 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/gleam/ch2/.gitignore | 4 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/gleam/ch2/README.md | 24 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/java/Ch1.java | 18 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/java/Ch2.java | 25 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/lua/ch-1.lua | 19 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/lua/ch-2.lua | 26 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/modula-3/Ch1/src/Ch1.m3 | 26 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/modula-3/Ch1/src/m3makefile | 4 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/modula-3/Ch2/src/Ch2.m3 | 37 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/modula-3/Ch2/src/m3makefile | 4 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/perl/ch-1.pl | 15 | ||||
| -rw-r--r-- | challenge-320/deadmarshal/perl/ch-2.pl | 13 |
17 files changed, 224 insertions, 56 deletions
diff --git a/challenge-320/deadmarshal/blog.txt b/challenge-320/deadmarshal/blog.txt new file mode 100644 index 0000000000..c64b23c013 --- /dev/null +++ b/challenge-320/deadmarshal/blog.txt @@ -0,0 +1 @@ +https://deadmarshal.blogspot.com/2025/05/twc320.html diff --git a/challenge-320/deadmarshal/erlang/ch1.erl b/challenge-320/deadmarshal/erlang/ch1.erl new file mode 100644 index 0000000000..1572d129d7 --- /dev/null +++ b/challenge-320/deadmarshal/erlang/ch1.erl @@ -0,0 +1,15 @@ +-module(ch1). +-author("Ali Moradi"). +-export([maximum_count/1]). + +maximum_count(L) -> + {Neg, Pos} = maximum_count(L, 0, 0), + max(Neg, Pos). + +maximum_count([], Neg, Pos) -> {Neg, Pos}; +maximum_count([H | T], Neg, Pos) when H < 0 -> + maximum_count(T, Neg + 1, Pos); +maximum_count([H | T], Neg, Pos) when H > 0 -> + maximum_count(T, Neg, Pos + 1); +maximum_count([H | T], Neg, Pos) when H =:= 0 -> + maximum_count(T, Neg, Pos). diff --git a/challenge-320/deadmarshal/erlang/ch2.erl b/challenge-320/deadmarshal/erlang/ch2.erl new file mode 100644 index 0000000000..5ea3d04cb1 --- /dev/null +++ b/challenge-320/deadmarshal/erlang/ch2.erl @@ -0,0 +1,21 @@ +-module(ch2). +-author("Ali Moradi"). +-export([sum_difference/1]). + +sum_difference(L) -> + {Sum1, Sum2} = sum_difference(L, 0, 0), + abs(Sum1 - Sum2). + +sum_difference([], Sum1, Sum2) -> {Sum1, Sum2}; +sum_difference([H | T], Sum1, Sum2) -> + sum_difference(T, Sum1 + H, Sum2 + sum_digits(H)). + +sum_digits(N) -> + sum_digits(N, 10). + +sum_digits(N, B) -> + sum_digits(N, B, 0). + +sum_digits(0, _, Acc) -> Acc; +sum_digits(N, Base, Acc) when N < Base -> Acc + N; +sum_digits(N, Base, Acc) -> sum_digits(N div Base, Base, Acc + (N rem Base)). diff --git a/challenge-320/deadmarshal/gleam/ch1/.gitignore b/challenge-320/deadmarshal/gleam/ch1/.gitignore deleted file mode 100644 index 599be4eb92..0000000000 --- a/challenge-320/deadmarshal/gleam/ch1/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.beam -*.ez -/build -erl_crash.dump diff --git a/challenge-320/deadmarshal/gleam/ch1/README.md b/challenge-320/deadmarshal/gleam/ch1/README.md deleted file mode 100644 index a6237ef8ed..0000000000 --- a/challenge-320/deadmarshal/gleam/ch1/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# ch1 - -[](https://hex.pm/packages/ch1) -[](https://hexdocs.pm/ch1/) - -```sh -gleam add ch1@1 -``` -```gleam -import ch1 - -pub fn main() -> Nil { - // TODO: An example of the project in use -} -``` - -Further documentation can be found at <https://hexdocs.pm/ch1>. - -## Development - -```sh -gleam run # Run the project -gleam test # Run the tests -``` diff --git a/challenge-320/deadmarshal/gleam/ch2/.gitignore b/challenge-320/deadmarshal/gleam/ch2/.gitignore deleted file mode 100644 index 599be4eb92..0000000000 --- a/challenge-320/deadmarshal/gleam/ch2/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.beam -*.ez -/build -erl_crash.dump diff --git a/challenge-320/deadmarshal/gleam/ch2/README.md b/challenge-320/deadmarshal/gleam/ch2/README.md deleted file mode 100644 index bf772e3022..0000000000 --- a/challenge-320/deadmarshal/gleam/ch2/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# ch2 - -[](https://hex.pm/packages/ch2) -[](https://hexdocs.pm/ch2/) - -```sh -gleam add ch2@1 -``` -```gleam -import ch2 - -pub fn main() -> Nil { - // TODO: An example of the project in use -} -``` - -Further documentation can be found at <https://hexdocs.pm/ch2>. - -## Development - -```sh -gleam run # Run the project -gleam test # Run the tests -``` diff --git a/challenge-320/deadmarshal/java/Ch1.java b/challenge-320/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..6799e5c444 --- /dev/null +++ b/challenge-320/deadmarshal/java/Ch1.java @@ -0,0 +1,18 @@ +public class Ch1 { + public static void main(String[] args) { + System.out.println(maximum_count(new int[]{-3, -2, -1, 1, 2, 3})); + System.out.println(maximum_count(new int[]{-2, -1, 0, 0, 1})); + System.out.println(maximum_count(new int[]{1, 2, 3, 4})); + } + + private static int maximum_count(int[] arr) { + int n = 0, p = 0; + for (int num : arr) { + if (num != 0) { + if (num < 0) n++; + else p++; + } + } + return Math.max(n, p); + } +}
\ No newline at end of file diff --git a/challenge-320/deadmarshal/java/Ch2.java b/challenge-320/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..b2dfa8b596 --- /dev/null +++ b/challenge-320/deadmarshal/java/Ch2.java @@ -0,0 +1,25 @@ +public class Ch2 { + public static void main(String[] args) { + System.out.println(sum_difference(new int[]{1, 23, 4, 5})); + System.out.println(sum_difference(new int[]{1, 2, 3, 4, 5})); + System.out.println(sum_difference(new int[]{1, 2, 34})); + } + + private static int sum_difference(int[] arr) { + int sum1 = 0, sum2 = 0; + for (int n : arr) { + sum1 += n; + sum2 += sum_digits(n); + } + return Math.abs(sum1 - sum2); + } + + private static int sum_digits(int n) { + int sum = 0; + while (n != 0) { + sum += n % 10; + n /= 10; + } + return sum; + } +}
\ No newline at end of file diff --git a/challenge-320/deadmarshal/lua/ch-1.lua b/challenge-320/deadmarshal/lua/ch-1.lua new file mode 100644 index 0000000000..ad77eed748 --- /dev/null +++ b/challenge-320/deadmarshal/lua/ch-1.lua @@ -0,0 +1,19 @@ +#!/usr/bin/env lua + +local function maximum_count(t) + assert(type(t) == 'table','t must be a table!') + local neg,pos = 0,0 + for i=1,#t do + if t[i] ~= 0 then + if t[i] < 0 then neg = neg + 1 + else pos = pos + 1 + end + end + end + return math.max(neg,pos) +end + +print(maximum_count{-3,-2,-1,1,2,3}) +print(maximum_count{-2,-1,0,0,1}) +print(maximum_count{1,2,3,4}) + diff --git a/challenge-320/deadmarshal/lua/ch-2.lua b/challenge-320/deadmarshal/lua/ch-2.lua new file mode 100644 index 0000000000..272ce38419 --- /dev/null +++ b/challenge-320/deadmarshal/lua/ch-2.lua @@ -0,0 +1,26 @@ +#!/usr/bin/env lua + +local function sum_digits(n) + assert(type(n) == 'number','n must be a number!') + local sum = 0 + while n ~= 0 do + sum = sum + n % 10 + n = n // 10 + end + return sum +end + +local function sum_difference(t) + assert(type(t) == 'table','t must be a table!') + local sum1,sum2 = 0,0 + for i=1,#t do + sum1 = sum1 + t[i] + sum2 = sum2 + sum_digits(t[i]) + end + return math.abs(sum1 - sum2) +end + +print(sum_difference{1,23,4,5}) +print(sum_difference{1,2,3,4,5}) +print(sum_difference{1,2,34}) + diff --git a/challenge-320/deadmarshal/modula-3/Ch1/src/Ch1.m3 b/challenge-320/deadmarshal/modula-3/Ch1/src/Ch1.m3 new file mode 100644 index 0000000000..af9726f5e9 --- /dev/null +++ b/challenge-320/deadmarshal/modula-3/Ch1/src/Ch1.m3 @@ -0,0 +1,26 @@ +MODULE Ch1 EXPORTS Main; + +IMPORT SIO; + +VAR + A1 := ARRAY[0..5] OF INTEGER{-3,-2,-1,1,2,3}; + A2 := ARRAY[0..4] OF INTEGER{-2,-1,0,0,1}; + A3 := ARRAY[0..3] OF INTEGER{1,2,3,4}; + +PROCEDURE MaximumCount(VAR A:ARRAY OF INTEGER):CARDINAL = + VAR Neg,Pos:CARDINAL; + BEGIN + FOR I := FIRST(A) TO LAST(A) DO + IF A[I] # 0 THEN + IF A[I] < 0 THEN INC(Neg) ELSE INC(Pos) END + END + END; + RETURN MAX(Neg,Pos) + END MaximumCount; + +BEGIN + SIO.PutInt(MaximumCount(A1)); SIO.Nl(); + SIO.PutInt(MaximumCount(A2)); SIO.Nl(); + SIO.PutInt(MaximumCount(A3)); SIO.Nl() +END Ch1. + diff --git a/challenge-320/deadmarshal/modula-3/Ch1/src/m3makefile b/challenge-320/deadmarshal/modula-3/Ch1/src/m3makefile new file mode 100644 index 0000000000..643b33d043 --- /dev/null +++ b/challenge-320/deadmarshal/modula-3/Ch1/src/m3makefile @@ -0,0 +1,4 @@ +import("libm3") +import("libsio") +implementation("Ch1") +program("Ch1") diff --git a/challenge-320/deadmarshal/modula-3/Ch2/src/Ch2.m3 b/challenge-320/deadmarshal/modula-3/Ch2/src/Ch2.m3 new file mode 100644 index 0000000000..c83a6159a2 --- /dev/null +++ b/challenge-320/deadmarshal/modula-3/Ch2/src/Ch2.m3 @@ -0,0 +1,37 @@ +MODULE Ch2 EXPORTS Main; + +IMPORT SIO; + +PROCEDURE SumDigits(N:INTEGER):CARDINAL = + VAR + Sum:CARDINAL; + BEGIN + WHILE N # 0 DO + INC(Sum,N MOD 10); + N := N DIV 10 + END; + RETURN Sum + END SumDigits; + +PROCEDURE SumDifference(VAR A:ARRAY OF INTEGER):CARDINAL = + VAR + Sum1,Sum2:CARDINAL; + BEGIN + FOR I := FIRST(A) TO LAST(A) DO + INC(Sum1,A[I]); + INC(Sum2,SumDigits(A[I])) + END; + RETURN ABS(Sum1 - Sum2) + END SumDifference; + +VAR + A1 := ARRAY[0..3] OF INTEGER{1,23,4,5}; + A2 := ARRAY[0..4] OF INTEGER{1,2,3,4,5}; + A3 := ARRAY[0..2] OF INTEGER{1,2,34}; + +BEGIN + SIO.PutInt(SumDifference(A1)); SIO.Nl(); + SIO.PutInt(SumDifference(A2)); SIO.Nl(); + SIO.PutInt(SumDifference(A3)); SIO.Nl() +END Ch2. + diff --git a/challenge-320/deadmarshal/modula-3/Ch2/src/m3makefile b/challenge-320/deadmarshal/modula-3/Ch2/src/m3makefile new file mode 100644 index 0000000000..78802242fe --- /dev/null +++ b/challenge-320/deadmarshal/modula-3/Ch2/src/m3makefile @@ -0,0 +1,4 @@ +import("libm3") +import("libsio") +implementation("Ch2") +program("Ch2") diff --git a/challenge-320/deadmarshal/perl/ch-1.pl b/challenge-320/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..077188ca34 --- /dev/null +++ b/challenge-320/deadmarshal/perl/ch-1.pl @@ -0,0 +1,15 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::Util qw(max); + +sub maximum_count{ + my ($n,$p) = (0,0); + map{if($_ != 0) {$_ < 0 ? $n++ : $p++}} @{$_[0]}; + max($n,$p) +} + +printf "%d\n",maximum_count([-3,-2,-1,1,2,3]); +printf "%d\n",maximum_count([-2,-1,0,0,1]); +printf "%d\n",maximum_count([1,2,3,4]); + diff --git a/challenge-320/deadmarshal/perl/ch-2.pl b/challenge-320/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..4c94e9fb8e --- /dev/null +++ b/challenge-320/deadmarshal/perl/ch-2.pl @@ -0,0 +1,13 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::Util qw(sum0); + +sub sum_diffrence{ + abs(sum0(@{$_[0]}) - sum0(split '',join '',@{$_[0]})) +} + +printf "%d\n",sum_diffrence([1,23,4,5]); +printf "%d\n",sum_diffrence([1,2,3,4,5]); +printf "%d\n",sum_diffrence([1,2,34]); + |
