diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-05-21 13:43:38 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-21 13:43:38 +0100 |
| commit | c4ae6428a67c4844df2844a8cb39a8bcf705a8aa (patch) | |
| tree | e5c9d4963cb207141a72fe0daaae4b61dfeb0201 | |
| parent | 05dab35c713c1d08a83305d8cdd6e9328d86575a (diff) | |
| parent | 7543ffc033b251b55c32ce83133b789e520995d6 (diff) | |
| download | perlweeklychallenge-club-c4ae6428a67c4844df2844a8cb39a8bcf705a8aa.tar.gz perlweeklychallenge-club-c4ae6428a67c4844df2844a8cb39a8bcf705a8aa.tar.bz2 perlweeklychallenge-club-c4ae6428a67c4844df2844a8cb39a8bcf705a8aa.zip | |
Merge pull request #10124 from zapwai/branch-for-270
Week 270
| -rw-r--r-- | challenge-270/zapwai/c/ch-1.c | 56 | ||||
| -rw-r--r-- | challenge-270/zapwai/javascript/ch-1.js | 50 | ||||
| -rw-r--r-- | challenge-270/zapwai/perl/ch-1.pl | 42 | ||||
| -rw-r--r-- | challenge-270/zapwai/python/ch-1.py | 40 | ||||
| -rw-r--r-- | challenge-270/zapwai/rust/ch-1.rs | 55 |
5 files changed, 243 insertions, 0 deletions
diff --git a/challenge-270/zapwai/c/ch-1.c b/challenge-270/zapwai/c/ch-1.c new file mode 100644 index 0000000000..60630ec102 --- /dev/null +++ b/challenge-270/zapwai/c/ch-1.c @@ -0,0 +1,56 @@ +#include <stdio.h> +#include <stdbool.h> + +bool is_special(int m[3][3], int M, int N, int i, int j) { + if (m[i][j] != 1) { + return 0; + } + for (int k = 0; k < M; k++) { + if (k == i) { + continue; + } + if (m[k][j] != 0) { + return 0; + } + } + for (int k = 0; k < N; k++) { + if (k == j) { + continue; + } + if (m[i][k] != 0) { + return 0; + } + } + return 1; +} + +void proc(int m[3][3], int M, int N) { + printf("Input: m = "); + int cnt = 0; + for (int i = 0; i < M; i++) { + printf("\n\t\t"); + for (int j = 0; j < N; j++) { + printf("%d ", m[i][j]); + if (is_special(m, M, N, i, j)) { + cnt++; + } + } + } + printf("\nOutput: %d\n", cnt); +} + +int main() { + int matrix[3][3] = { {1, 0, 0}, + {0, 0, 1}, + {1, 0, 0}, + }; + + int matrix2[3][3] = { {1, 0, 0}, + {0, 1, 0}, + {0, 0, 1}, + }; + + proc(matrix, 3, 3); + proc(matrix2, 3, 3); +} + diff --git a/challenge-270/zapwai/javascript/ch-1.js b/challenge-270/zapwai/javascript/ch-1.js new file mode 100644 index 0000000000..d8b130e799 --- /dev/null +++ b/challenge-270/zapwai/javascript/ch-1.js @@ -0,0 +1,50 @@ +let matrix = [ [1, 0, 0], + [0, 0, 1], + [1, 0, 0], + ]; + +let matrix2 = [ [1, 0, 0], + [0, 1, 0], + [0, 0, 1], + ]; + +proc(matrix); +proc(matrix2); + +function is_special(m, M, N, i, j) { + if (m[i][j] != 1) { + return 0; + } + for (let k = 0; k < M; k++) { + if (k == i) { + continue; + } + if (m[k][j] != 0) { + return 0; + } + } + for (let k = 0; k < N; k++) { + if (k == j) { + continue; + } + if (m[i][k] != 0) { + return 0; + } + } + return 1; +} + +function proc(m) { + let M = m.length; + let N = m[0].length; + console.log("Input: m = ", m); + let cnt = 0; + for (let i = 0; i < M; i++) { + for (let j = 0; j < N; j++) { + if (is_special(m, M, N, i, j)) { + cnt++; + } + } + } + console.log("Output: ", cnt); +} diff --git a/challenge-270/zapwai/perl/ch-1.pl b/challenge-270/zapwai/perl/ch-1.pl new file mode 100644 index 0000000000..d6dc4e56db --- /dev/null +++ b/challenge-270/zapwai/perl/ch-1.pl @@ -0,0 +1,42 @@ +use v5.38; +my $matrix = [ [1, 0, 0], + [0, 0, 1], + [1, 0, 0], + ]; + +my $matrix2 = [ [1, 0, 0], + [0, 1, 0], + [0, 0, 1], + ]; + +sub is_special($m, $M, $N, $i, $j) { + return 0 if ($$m[$i][$j] != 1); + for my $k (0 .. $M) { + next if ($k == $i); + return 0 if ($$m[$k][$j] != 0); + } + for my $k (0 .. $N) { + next if ($k == $j); + return 0 if ($$m[$i][$k] != 0); + } + return 1; +} + +sub proc($m) { + my $M = @$m - 1; + my $N = @{$$m[0]} - 1; + say "Input: m = "; + my $cnt = 0; + for my $i (0 .. $M) { + print "\t"; + for my $j (0 .. $N) { + print $$m[$i][$j]; + $cnt++ if is_special($m, $M, $N, $i, $j); + } + print "\n"; + } + say "Output: $cnt"; +} + +proc($matrix); +proc($matrix2); diff --git a/challenge-270/zapwai/python/ch-1.py b/challenge-270/zapwai/python/ch-1.py new file mode 100644 index 0000000000..cee3a0cdfc --- /dev/null +++ b/challenge-270/zapwai/python/ch-1.py @@ -0,0 +1,40 @@ +matrix = [ [1, 0, 0], + [0, 0, 1], + [1, 0, 0], + ] + +matrix2 = [ [1, 0, 0], + [0, 1, 0], + [0, 0, 1], + ] + +def is_special(m, M, N, i, j): + if m[i][j] != 1: + return 0 + for k in range(M): + if k == i: + continue + if m[k][j] != 0: + return 0 + for k in range (N): + if k == j: + continue + if m[i][k] != 0: + return 0 + return 1 + +def proc(m): + M = len(m) + N = len(m[0]) + print("Input: \nm = ") + cnt = 0 + for i in range(M): + for j in range(N): + print(m[i][j], end='') + if is_special(m, M, N, i, j): + cnt += 1 + print("") + print("Output:", cnt) + +proc(matrix) +proc(matrix2) diff --git a/challenge-270/zapwai/rust/ch-1.rs b/challenge-270/zapwai/rust/ch-1.rs new file mode 100644 index 0000000000..af2c806257 --- /dev/null +++ b/challenge-270/zapwai/rust/ch-1.rs @@ -0,0 +1,55 @@ +#![allow(non_snake_case)] + +fn is_special(m : &Vec<Vec<i32>>, M : i32, N : i32, i : usize, j : usize) -> bool { + if m[i][j] != 1 { + return false; + } + for k in 0 .. M as usize { + if k == i { + continue; + } + if m[k][j] != 0 { + return false; + } + } + for k in 0 .. N as usize { + if k == j { + continue; + } + if m[i][k] != 0 { + return false; + } + } + return true; +} + +fn proc(m : Vec<Vec<i32>>, M : i32, N : i32) { + println!("Input: m = {:?}", m); + let mut cnt = 0; + for i in 0 .. M { + for j in 0 .. N { + if is_special(&m, M, N, i as usize, j as usize) { + cnt += 1; + } + } + } + println!("Output: {cnt}"); +} + +fn main() { + let matrix = vec![ + vec![1, 0, 0], + vec![0, 0, 1], + vec![1, 0, 0], + ]; + + let matrix2 = vec![ + vec![1, 0, 0], + vec![0, 1, 0], + vec![0, 0, 1], + ]; + + proc(matrix, 3, 3); + proc(matrix2, 3, 3); +} + |
