aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-05-06 15:24:26 +0100
committerGitHub <noreply@github.com>2025-05-06 15:24:26 +0100
commit1fa41ffd3abb48439d78b14a2ab264bf88a1e754 (patch)
tree4a3cb2b1c5d9a76f52541667ff5d9339c9b0f5cf
parent2ab682891231239b69b797be4d6502ee076cb5a5 (diff)
parent7e287363f2947539bc24be8a61457b08037ca4f6 (diff)
downloadperlweeklychallenge-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.txt1
-rw-r--r--challenge-320/deadmarshal/erlang/ch1.erl15
-rw-r--r--challenge-320/deadmarshal/erlang/ch2.erl21
-rw-r--r--challenge-320/deadmarshal/gleam/ch1/.gitignore4
-rw-r--r--challenge-320/deadmarshal/gleam/ch1/README.md24
-rw-r--r--challenge-320/deadmarshal/gleam/ch2/.gitignore4
-rw-r--r--challenge-320/deadmarshal/gleam/ch2/README.md24
-rw-r--r--challenge-320/deadmarshal/java/Ch1.java18
-rw-r--r--challenge-320/deadmarshal/java/Ch2.java25
-rw-r--r--challenge-320/deadmarshal/lua/ch-1.lua19
-rw-r--r--challenge-320/deadmarshal/lua/ch-2.lua26
-rw-r--r--challenge-320/deadmarshal/modula-3/Ch1/src/Ch1.m326
-rw-r--r--challenge-320/deadmarshal/modula-3/Ch1/src/m3makefile4
-rw-r--r--challenge-320/deadmarshal/modula-3/Ch2/src/Ch2.m337
-rw-r--r--challenge-320/deadmarshal/modula-3/Ch2/src/m3makefile4
-rw-r--r--challenge-320/deadmarshal/perl/ch-1.pl15
-rw-r--r--challenge-320/deadmarshal/perl/ch-2.pl13
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
-
-[![Package Version](https://img.shields.io/hexpm/v/ch1)](https://hex.pm/packages/ch1)
-[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](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
-
-[![Package Version](https://img.shields.io/hexpm/v/ch2)](https://hex.pm/packages/ch2)
-[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](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]);
+