diff options
| author | David Ferrone <zapwai@gmail.com> | 2024-02-26 10:10:41 -0500 |
|---|---|---|
| committer | David Ferrone <zapwai@gmail.com> | 2024-02-26 10:10:41 -0500 |
| commit | 66a050375c085ab32267a2c15bcb359490f9e646 (patch) | |
| tree | f53c22a86859bb1925419efc7f52c622161672fe | |
| parent | 4416b8cd33659c6d380e3ea2c5b3e21e4a861a99 (diff) | |
| download | perlweeklychallenge-club-66a050375c085ab32267a2c15bcb359490f9e646.tar.gz perlweeklychallenge-club-66a050375c085ab32267a2c15bcb359490f9e646.tar.bz2 perlweeklychallenge-club-66a050375c085ab32267a2c15bcb359490f9e646.zip | |
Week 258
| -rw-r--r-- | challenge-258/zapwai/c/ch-1.c | 30 | ||||
| -rw-r--r-- | challenge-258/zapwai/c/ch-2.c | 41 | ||||
| -rw-r--r-- | challenge-258/zapwai/javascript/ch-1.js | 17 | ||||
| -rw-r--r-- | challenge-258/zapwai/javascript/ch-2.js | 23 | ||||
| -rw-r--r-- | challenge-258/zapwai/perl/ch-1.pl | 22 | ||||
| -rw-r--r-- | challenge-258/zapwai/perl/ch-2.pl | 24 | ||||
| -rw-r--r-- | challenge-258/zapwai/python/ch-1.py | 14 | ||||
| -rw-r--r-- | challenge-258/zapwai/python/ch-2.py | 22 | ||||
| -rw-r--r-- | challenge-258/zapwai/rust/ch-1.rs | 19 | ||||
| -rw-r--r-- | challenge-258/zapwai/rust/ch-2.rs | 30 |
10 files changed, 242 insertions, 0 deletions
diff --git a/challenge-258/zapwai/c/ch-1.c b/challenge-258/zapwai/c/ch-1.c new file mode 100644 index 0000000000..65d6813c07 --- /dev/null +++ b/challenge-258/zapwai/c/ch-1.c @@ -0,0 +1,30 @@ +#include <stdio.h> +#include <string.h> + +void proc(int intslen, int ints[]) { + printf("Input: { "); + for (int i = 0; i < intslen; i++) { + printf("%d ", ints[i]); + } + printf("}\n"); + int cnt = 0; + for (int i = 0; i < intslen; i++) { + char word[50]; + sprintf(word, "%d", ints[i]); + if (strlen(word) % 2== 0) { + cnt++; + } + } + printf("Output: %d\n", cnt); +} + +int main() { + int ints[] = {10, 1, 111, 24, 1000}; + proc(sizeof(ints)/sizeof(int), ints); + int ints2[] = {111, 1, 11111}; + proc(sizeof(ints2)/sizeof(int), ints2); + int ints3[] = {2, 8, 1024, 256}; + proc(sizeof(ints3)/sizeof(int), ints3); + +} + diff --git a/challenge-258/zapwai/c/ch-2.c b/challenge-258/zapwai/c/ch-2.c new file mode 100644 index 0000000000..697bb706a6 --- /dev/null +++ b/challenge-258/zapwai/c/ch-2.c @@ -0,0 +1,41 @@ +#include <stdio.h> + +int binary_tally(int num) { + int tally = 0; + int bitlen = sizeof(num) * 8; + for (int i = bitlen - 1; i >= 0; i--) { + if (num & (1 << i)) + tally++; + } + return tally; +} + +void proc(int k, int intlen, int ints[]) { + printf("Input: { "); + for (int i = 0; i < intlen; i++) { + printf("%d ", ints[i]); + } + printf("}, k = %d\n", k); + + int sum = 0; + for (int i = 0; i < intlen; i++) { + int tally = binary_tally(i); + if (tally == k) { + sum += ints[i]; + } + } + + printf("Output: %d\n", sum); +} + +int main() { + int ints1[] = {2, 5, 9, 11, 3}; int k1 = 1; + int ints2[] = {2, 5, 9, 11, 3}; int k2 = 2; + int ints3[] = {2, 5, 9, 11, 3}; int k3 = 0; + int l1 = sizeof(ints1) / sizeof(int); + int l2 = sizeof(ints2) / sizeof(int); + int l3 = sizeof(ints3) / sizeof(int); + proc(k1, l1, ints1); + proc(k2, l2, ints2); + proc(k3, l3, ints3); +} diff --git a/challenge-258/zapwai/javascript/ch-1.js b/challenge-258/zapwai/javascript/ch-1.js new file mode 100644 index 0000000000..b9bbd3ecb3 --- /dev/null +++ b/challenge-258/zapwai/javascript/ch-1.js @@ -0,0 +1,17 @@ +let ints = [10, 1, 111, 24, 1000]; +let ints2 = [111, 1, 11111]; +let ints3 = [2, 8, 1024, 256]; +proc(ints); +proc(ints2); +proc(ints3); + +function proc(ints) { + console.log("Input:", ints); + let cnt = 0; + for (let num of ints) { + if (num.toString().length % 2 == 0) { + cnt++; + } + } + console.log("Output:", cnt); +} diff --git a/challenge-258/zapwai/javascript/ch-2.js b/challenge-258/zapwai/javascript/ch-2.js new file mode 100644 index 0000000000..97e37a8340 --- /dev/null +++ b/challenge-258/zapwai/javascript/ch-2.js @@ -0,0 +1,23 @@ +let ints1 = [2, 5, 9, 11, 3]; let k1 = 1; +let ints2 = [2, 5, 9, 11, 3]; let k2 = 2; +let ints3 = [2, 5, 9, 11, 3]; let k3 = 0; +proc(k1, ints1); +proc(k2, ints2); +proc(k3, ints3); +function proc(k, ints) { + console.log("Input:", ints, "k:", k); + let sum = 0; + for (let i in ints) { + let tally = 0; + let x = Number(i).toString(2); + for (let c of x.split("")) { + if (c == '1') { + tally += 1; + } + } + if (tally == k) { + sum += ints[i]; + } + } + console.log("Output:", sum); +} diff --git a/challenge-258/zapwai/perl/ch-1.pl b/challenge-258/zapwai/perl/ch-1.pl new file mode 100644 index 0000000000..ad0c288489 --- /dev/null +++ b/challenge-258/zapwai/perl/ch-1.pl @@ -0,0 +1,22 @@ +use v5.36; + +my @ints = (10, 1, 111, 24, 1000); +my @ints2 = (111, 1, 11111); +my @ints3 = (2, 8, 1024, 256); + +proc(@ints); +proc(@ints2); +proc(@ints3); + +sub proc (@ints) { + say "Input: (@ints)"; + say "Output: ", cnt_even_lens(@ints); +} + +sub cnt_even_lens(@ints) { + my $cnt = 0; + foreach my $item (@ints) { + $cnt++ if (length($item) % 2 == 0); + } + return $cnt; +} diff --git a/challenge-258/zapwai/perl/ch-2.pl b/challenge-258/zapwai/perl/ch-2.pl new file mode 100644 index 0000000000..95c03ab65e --- /dev/null +++ b/challenge-258/zapwai/perl/ch-2.pl @@ -0,0 +1,24 @@ +use v5.36; +use List::Util qw( sum ); + +my @ints1 = (2, 5, 9, 11, 3); my $k1 = 1; +my @ints2 = (2, 5, 9, 11, 3); my $k2 = 2; +my @ints3 = (2, 5, 9, 11, 3); my $k3 = 0; + +proc($k1, @ints1); +proc($k2, @ints2); +proc($k3, @ints3); + +sub proc($k, @ints) { + say "Input: \@ints = (@ints), \$k = $k"; + my $sum = 0; + my @ind; + for my $i (0 .. $#ints) { + my $s = sprintf "%b", $i; + my @bit = split "", $s; + my $tally = sum( grep { 1 } @bit ); + push @ind, $i if ($tally == $k); + } + $sum += $ints[$_] foreach (@ind); + say "Output: $sum"; +} diff --git a/challenge-258/zapwai/python/ch-1.py b/challenge-258/zapwai/python/ch-1.py new file mode 100644 index 0000000000..e6c8785b3a --- /dev/null +++ b/challenge-258/zapwai/python/ch-1.py @@ -0,0 +1,14 @@ +def proc(ints): + cnt = 0; + for i in ints: + if len(str(i)) % 2 == 0: + cnt += 1 + print("Input:", ints) + print("Output:", cnt) + +ints = [10, 1, 111, 24, 1000] +ints2 = [111, 1, 11111] +ints3 = [2, 8, 1024, 256] +proc(ints) +proc(ints2) +proc(ints3) diff --git a/challenge-258/zapwai/python/ch-2.py b/challenge-258/zapwai/python/ch-2.py new file mode 100644 index 0000000000..d1fb04f3d8 --- /dev/null +++ b/challenge-258/zapwai/python/ch-2.py @@ -0,0 +1,22 @@ +def proc(k, ints): + print("Input: ints:", ints, "k:", k) + sum = 0 + ind = [] + for i in range(len(ints)): + tally = 0; + s = format(f'{i:b}') + for c in list(s): + if c == "1": + tally += 1 + if tally == k: + ind.append(i) + for i in ind: + sum += ints[i] + print("Output:",sum) +ints1 = [2, 5, 9, 11, 3]; k1 = 1 +ints2 = [2, 5, 9, 11, 3]; k2 = 2 +ints3 = [2, 5, 9, 11, 3]; k3 = 0 + +proc(k1, ints1) +proc(k2, ints2) +proc(k3, ints3) diff --git a/challenge-258/zapwai/rust/ch-1.rs b/challenge-258/zapwai/rust/ch-1.rs new file mode 100644 index 0000000000..507db0ceb4 --- /dev/null +++ b/challenge-258/zapwai/rust/ch-1.rs @@ -0,0 +1,19 @@ +fn main() { + let ints = vec![10, 1, 111, 24, 1000]; + let ints2 = vec![111, 1, 11111]; + let ints3 = vec![2, 8, 1024, 256]; + proc(ints); + proc(ints2); + proc(ints3); +} + +fn proc(ints : Vec<i32>) { + let mut cnt = 0; + for i in &ints { + if i.to_string().len() % 2 == 0 { + cnt += 1; + } + } + println!("Input: {:?}", ints); + println!("Output: {cnt}"); +} diff --git a/challenge-258/zapwai/rust/ch-2.rs b/challenge-258/zapwai/rust/ch-2.rs new file mode 100644 index 0000000000..a4519e44a6 --- /dev/null +++ b/challenge-258/zapwai/rust/ch-2.rs @@ -0,0 +1,30 @@ +fn proc(k : i32, ints : Vec<i32>) { + println!("Input: {:?}, k = {k}", ints); + let mut sum = 0; + let mut ind = Vec::new(); + for i in 0 .. ints.len() { + let mut tally = 0; + let s = format!("{:b}", i); + for c in s.to_string().chars() { + if c == '1' { + tally += 1; + } + } + if tally == k { + ind.push(i); + } + } + for i in ind { + sum += ints[i]; + } + println!("Output: {sum}"); +} + +fn main() { + let ints1 = vec![2, 5, 9, 11, 3]; let k1 = 1; + let ints2 = vec![2, 5, 9, 11, 3]; let k2 = 2; + let ints3 = vec![2, 5, 9, 11, 3]; let k3 = 0; + proc(k1, ints1); + proc(k2, ints2); + proc(k3, ints3); +} |
