diff options
| author | David Ferrone <zapwai@gmail.com> | 2024-03-18 12:01:17 -0400 |
|---|---|---|
| committer | David Ferrone <zapwai@gmail.com> | 2024-03-18 12:01:17 -0400 |
| commit | 1eb85f19ecea3b92d910fde90d3256597949703e (patch) | |
| tree | aa4150a79df6dd7bd888e329b241e0151c3a3b14 | |
| parent | cad939ed2335566e31b26c5b74b9fc99c23db7a5 (diff) | |
| download | perlweeklychallenge-club-1eb85f19ecea3b92d910fde90d3256597949703e.tar.gz perlweeklychallenge-club-1eb85f19ecea3b92d910fde90d3256597949703e.tar.bz2 perlweeklychallenge-club-1eb85f19ecea3b92d910fde90d3256597949703e.zip | |
Week 261
| -rw-r--r-- | challenge-261/zapwai/c/ch-1.c | 29 | ||||
| -rw-r--r-- | challenge-261/zapwai/c/ch-2.c | 26 | ||||
| -rw-r--r-- | challenge-261/zapwai/javascript/ch-1.js | 25 | ||||
| -rw-r--r-- | challenge-261/zapwai/javascript/ch-2.js | 22 | ||||
| -rw-r--r-- | challenge-261/zapwai/perl/ch-1.pl | 15 | ||||
| -rw-r--r-- | challenge-261/zapwai/perl/ch-2.pl | 19 | ||||
| -rw-r--r-- | challenge-261/zapwai/python/ch-1.py | 12 | ||||
| -rw-r--r-- | challenge-261/zapwai/python/ch-2.py | 14 | ||||
| -rw-r--r-- | challenge-261/zapwai/rust/ch-1.rs | 26 | ||||
| -rw-r--r-- | challenge-261/zapwai/rust/ch-2.rs | 21 |
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)); +} + |
