aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Ferrone <zapwai@gmail.com>2024-03-18 12:01:17 -0400
committerDavid Ferrone <zapwai@gmail.com>2024-03-18 12:01:17 -0400
commit1eb85f19ecea3b92d910fde90d3256597949703e (patch)
treeaa4150a79df6dd7bd888e329b241e0151c3a3b14
parentcad939ed2335566e31b26c5b74b9fc99c23db7a5 (diff)
downloadperlweeklychallenge-club-1eb85f19ecea3b92d910fde90d3256597949703e.tar.gz
perlweeklychallenge-club-1eb85f19ecea3b92d910fde90d3256597949703e.tar.bz2
perlweeklychallenge-club-1eb85f19ecea3b92d910fde90d3256597949703e.zip
Week 261
-rw-r--r--challenge-261/zapwai/c/ch-1.c29
-rw-r--r--challenge-261/zapwai/c/ch-2.c26
-rw-r--r--challenge-261/zapwai/javascript/ch-1.js25
-rw-r--r--challenge-261/zapwai/javascript/ch-2.js22
-rw-r--r--challenge-261/zapwai/perl/ch-1.pl15
-rw-r--r--challenge-261/zapwai/perl/ch-2.pl19
-rw-r--r--challenge-261/zapwai/python/ch-1.py12
-rw-r--r--challenge-261/zapwai/python/ch-2.py14
-rw-r--r--challenge-261/zapwai/rust/ch-1.rs26
-rw-r--r--challenge-261/zapwai/rust/ch-2.rs21
10 files changed, 209 insertions, 0 deletions
diff --git a/challenge-261/zapwai/c/ch-1.c b/challenge-261/zapwai/c/ch-1.c
new file mode 100644
index 0000000000..2cc1f36c05
--- /dev/null
+++ b/challenge-261/zapwai/c/ch-1.c
@@ -0,0 +1,29 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int digits_sum(int* ints, int ints_len) {
+ int sum = 0;
+ for (int i = 0; i < ints_len; i++) {
+ do {
+ sum += ints[i] % 10;
+ ints[i] /= 10;
+ } while (ints[i] != 0);
+ }
+ return sum;
+}
+
+int sum(int* ints, int ints_len) {
+ int sum = 0;
+ for (int i = 0; i < ints_len; i++)
+ sum += ints[i];
+ return sum;
+}
+
+int main() {
+ int ints[] = {1,2,3,45};
+ int ints_len = sizeof(ints) / sizeof(int);
+ printf("Input: ints = { ");
+ for (int i = 0; i < ints_len; i++)
+ printf("%d ", ints[i]);
+ printf("}\nOutput: %d\n", abs(sum(ints, ints_len) - digits_sum(ints, ints_len)));
+}
diff --git a/challenge-261/zapwai/c/ch-2.c b/challenge-261/zapwai/c/ch-2.c
new file mode 100644
index 0000000000..efdb33fe13
--- /dev/null
+++ b/challenge-261/zapwai/c/ch-2.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include <stdbool.h>
+
+int double_me (int* ints, int ints_len, int start) {
+ bool flag = true;
+ while (flag) {
+ flag = false;
+ for (int i = 0; i < ints_len; i++) {
+ if (ints[i] == start) {
+ flag = true;
+ start *= 2;
+ }
+ }
+ }
+ return start;
+}
+
+int main() {
+ int ints[] = {5, 3, 6, 1, 12};
+ int start = 3;
+ printf("Input: ints = { ");
+ int ints_len = sizeof(ints) / sizeof(int);
+ for (int i = 0; i < ints_len; i++)
+ printf("%d ", ints[i]);
+ printf("}, start = %d\nOutput: %d\n", start, double_me(ints, ints_len, start));
+}
diff --git a/challenge-261/zapwai/javascript/ch-1.js b/challenge-261/zapwai/javascript/ch-1.js
new file mode 100644
index 0000000000..5b2c54cd9f
--- /dev/null
+++ b/challenge-261/zapwai/javascript/ch-1.js
@@ -0,0 +1,25 @@
+function digits_sum(ints) {
+ let sum = 0;
+ for (let i = 0; i < ints.length; i++) {
+ do {
+ sum += ints[i] % 10;
+ ints[i] = Math.floor(ints[i] / 10);
+ } while (ints[i] != 0);
+ }
+ return sum;
+}
+
+function sum(ints) {
+ let sum = 0;
+ for (let i = 0; i < ints.length; i++)
+ sum += ints[i];
+ return sum;
+}
+
+function main() {
+ let ints = [1,2,3,45];
+ console.log("Input:", ints);
+ console.log("Output:", Math.abs(sum(ints) - digits_sum(ints)));
+}
+
+main();
diff --git a/challenge-261/zapwai/javascript/ch-2.js b/challenge-261/zapwai/javascript/ch-2.js
new file mode 100644
index 0000000000..e0dd478f78
--- /dev/null
+++ b/challenge-261/zapwai/javascript/ch-2.js
@@ -0,0 +1,22 @@
+function double_me (ints, start) {
+ flag = true;
+ while (flag) {
+ flag = false;
+ for (let i = 0; i < ints.length; i++) {
+ if (ints[i] == start) {
+ flag = true;
+ start *= 2;
+ }
+ }
+ }
+ return start;
+}
+
+function main() {
+ let ints = [5, 3, 6, 1, 12];
+ let start = 3;
+ console.log("Input: ints:", ints, "start:", start);
+ console.log("Output:", double_me(ints, start));
+}
+
+main();
diff --git a/challenge-261/zapwai/perl/ch-1.pl b/challenge-261/zapwai/perl/ch-1.pl
new file mode 100644
index 0000000000..f0320d1b6d
--- /dev/null
+++ b/challenge-261/zapwai/perl/ch-1.pl
@@ -0,0 +1,15 @@
+use v5.38;
+use List::Util "sum";
+
+sub digit_sum(@ints) {
+ my $sum = 0;
+ foreach (@ints) {
+ my @p = split "", $_;
+ $sum += $_ foreach (@p);
+ }
+ return $sum;
+}
+
+my @ints = (1,2,3,45);
+say "Input: @ints";
+say "Output: ", abs(digit_sum(@ints) - sum @ints);
diff --git a/challenge-261/zapwai/perl/ch-2.pl b/challenge-261/zapwai/perl/ch-2.pl
new file mode 100644
index 0000000000..3ba1a8bb01
--- /dev/null
+++ b/challenge-261/zapwai/perl/ch-2.pl
@@ -0,0 +1,19 @@
+use v5.38;
+my @ints = (5,3,6,1,12);
+my $start = 3;
+doubles_scan(@ints);
+
+sub doubles_scan(@ints) {
+ say "Input: \@ints = @ints, \$start = $start";
+ my $flag = 1;
+ do {
+ $start *= 2;
+ if (grep { $_ == $start } @ints) {
+ $flag = 1;
+ } else {
+ $flag = 0;
+ }
+ } while ($flag);
+ say "Output: $start";
+}
+
diff --git a/challenge-261/zapwai/python/ch-1.py b/challenge-261/zapwai/python/ch-1.py
new file mode 100644
index 0000000000..fd3877e363
--- /dev/null
+++ b/challenge-261/zapwai/python/ch-1.py
@@ -0,0 +1,12 @@
+def digit_sum(ints):
+ sum = 0
+ for integer in ints:
+ while integer != 0:
+ sum += integer % 10;
+ integer = int(integer / 10);
+ return sum
+
+ints = [1,2,3,45];
+print("Input:", ints);
+print("Output:", abs(digit_sum(ints) - sum(ints)));
+
diff --git a/challenge-261/zapwai/python/ch-2.py b/challenge-261/zapwai/python/ch-2.py
new file mode 100644
index 0000000000..1048ae11cd
--- /dev/null
+++ b/challenge-261/zapwai/python/ch-2.py
@@ -0,0 +1,14 @@
+def double_me(ints,start):
+ flag = True
+ while flag:
+ flag = False
+ for i in ints:
+ if i == start:
+ flag = True
+ start *= 2
+ return start
+
+ints = [5, 3, 6, 1, 12]
+start = 3;
+print("Input:", ints, "start:", start)
+print("Output:", double_me(ints, start))
diff --git a/challenge-261/zapwai/rust/ch-1.rs b/challenge-261/zapwai/rust/ch-1.rs
new file mode 100644
index 0000000000..7cc0b3da3d
--- /dev/null
+++ b/challenge-261/zapwai/rust/ch-1.rs
@@ -0,0 +1,26 @@
+fn digits_sum(ints :&Vec<i32>) -> i32 {
+ let mut sum = 0;
+ for i in 0 .. ints.len() {
+ let mut val = ints[i];
+ while val != 0 {
+ sum += val % 10;
+ val /= 10;
+ }
+ }
+ return sum;
+}
+
+fn sum(ints :&Vec<i32>) -> i32 {
+ let mut sum = 0;
+ for i in 0 .. ints.len() {
+ sum += ints[i];
+ }
+ return sum;
+}
+
+fn main() {
+ let ints = vec![1,2,3,45];
+ println!("Input: ints = {:?}", ints);
+ let value = sum(&ints) - digits_sum(&ints);
+ println!("Output: {}", value.abs());
+}
diff --git a/challenge-261/zapwai/rust/ch-2.rs b/challenge-261/zapwai/rust/ch-2.rs
new file mode 100644
index 0000000000..72158822de
--- /dev/null
+++ b/challenge-261/zapwai/rust/ch-2.rs
@@ -0,0 +1,21 @@
+fn double_me (ints :&Vec<i32>, start :&mut i32) -> i32 {
+ let mut flag = true;
+ while flag {
+ flag = false;
+ for i in ints {
+ if i == start {
+ flag = true;
+ *start *= 2;
+ }
+ }
+ }
+ return *start;
+}
+
+fn main() {
+ let ints = vec![5, 3, 6, 1, 12];
+ let mut start = 3;
+ println!("Input: ints = {:?}, start = {start}", ints);
+ println!("Output: {}", double_me(&ints, &mut start));
+}
+