aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-01-16 19:45:09 +0000
committerGitHub <noreply@github.com>2024-01-16 19:45:09 +0000
commitf5349696fd043be2b23e915bf0d869f4966a819b (patch)
treea82041db496f61c92982fefd0094f46a47e9214b
parenta0df2b64bcda24f6ea2b4cd00b9cefe82bcae8ed (diff)
parent7a1fb136c3ddff1832fa5dc79130663849242d06 (diff)
downloadperlweeklychallenge-club-f5349696fd043be2b23e915bf0d869f4966a819b.tar.gz
perlweeklychallenge-club-f5349696fd043be2b23e915bf0d869f4966a819b.tar.bz2
perlweeklychallenge-club-f5349696fd043be2b23e915bf0d869f4966a819b.zip
Merge pull request #9413 from zapwai/branch-for-252
Week 252
-rw-r--r--challenge-252/zapwai/c/ch-1.c24
-rw-r--r--challenge-252/zapwai/c/ch-2.c21
-rw-r--r--challenge-252/zapwai/perl/ch-1.pl9
-rw-r--r--challenge-252/zapwai/perl/ch-2.pl14
-rw-r--r--challenge-252/zapwai/rust/ch-1.rs22
-rw-r--r--challenge-252/zapwai/rust/ch-2.rs18
6 files changed, 108 insertions, 0 deletions
diff --git a/challenge-252/zapwai/c/ch-1.c b/challenge-252/zapwai/c/ch-1.c
new file mode 100644
index 0000000000..377b141ab6
--- /dev/null
+++ b/challenge-252/zapwai/c/ch-1.c
@@ -0,0 +1,24 @@
+#include <stdio.h>
+void proc(int*, int);
+int main () {
+ int ints[] = {1,2,3,4};
+ int L = sizeof(ints) / sizeof(int);
+ int ints2[] = {2, 7, 1, 19, 18, 3};
+ int L2 = sizeof(ints2) / sizeof(int);
+
+ proc(ints, L);
+ proc(ints2, L2);
+
+}
+void proc(int* ints, int L) {
+ int sum = 0;
+ for (int i = 1; i <= L; i++) {
+ (L%i==0) ? sum += ints[i-1]*ints[i-1] : 0 ;
+ }
+ printf("Input: ints = {");
+ for (int i = 0; i < L - 1; i++) {
+ printf("%d, ",ints[i]);
+ }
+ printf("%d}\n",ints[L-1]);
+ printf("Output: %d\n",sum);
+} \ No newline at end of file
diff --git a/challenge-252/zapwai/c/ch-2.c b/challenge-252/zapwai/c/ch-2.c
new file mode 100644
index 0000000000..830889d056
--- /dev/null
+++ b/challenge-252/zapwai/c/ch-2.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+void proc(int n) {
+ int A[n];
+ (n % 2 == 1) ? A[n-1] = 0 : 0 ;
+ int k = n/2;
+ for (int i = 0; i < k; i++){
+ A[2*i] = i+1;
+ A[2*i+1] = -1*(i+1);
+ }
+ printf("Input: n = %d\n", n);
+ printf("Output: (");
+ for (int i = 0; i < n-1; i++) {
+ printf("%d, ",A[i]);
+ }
+ printf("%d)\n", A[n-1]);
+}
+int main () {
+ proc(5);
+ proc(7);
+ proc(4);
+} \ No newline at end of file
diff --git a/challenge-252/zapwai/perl/ch-1.pl b/challenge-252/zapwai/perl/ch-1.pl
new file mode 100644
index 0000000000..a3a54af621
--- /dev/null
+++ b/challenge-252/zapwai/perl/ch-1.pl
@@ -0,0 +1,9 @@
+use v5.30;
+my @ints = (1,2,3,4);
+#@ints = (2, 7, 1, 19, 18, 3);
+my $n = scalar @ints;
+my @special = grep { $n % ($_+1) == 0 } (0 .. $#ints);
+my $sum = 0;
+$sum += $ints[$_]**2 for ( @special );
+say "Input: \@ints = @ints";
+say "Output: $sum"; \ No newline at end of file
diff --git a/challenge-252/zapwai/perl/ch-2.pl b/challenge-252/zapwai/perl/ch-2.pl
new file mode 100644
index 0000000000..8a4ac95546
--- /dev/null
+++ b/challenge-252/zapwai/perl/ch-2.pl
@@ -0,0 +1,14 @@
+use v5.30;
+my $n = 5;
+say "Input: \$n = $n";
+print "Output: ";
+if ($n == 1) {
+ say "0";
+} else {
+ my @a;
+ my $k = int $n/2;
+ push @a, -1*$_, $_ for (1 .. $k);
+ push @a, 0 if ($n % 2 == 1);
+ @a = sort {$a <=> $b} @a;
+ say "@a";
+} \ No newline at end of file
diff --git a/challenge-252/zapwai/rust/ch-1.rs b/challenge-252/zapwai/rust/ch-1.rs
new file mode 100644
index 0000000000..843ee37127
--- /dev/null
+++ b/challenge-252/zapwai/rust/ch-1.rs
@@ -0,0 +1,22 @@
+fn main() {
+ let v = vec![1,2,3,4];
+ let v2 = vec![2,7,1,19,18,3];
+ proc(v);
+ proc(v2);
+}
+
+fn proc(v : Vec<i32>) {
+ let mut s = Vec::new();
+ println!("Input: ints = {:?}", v);
+ let n = v.len();
+ for k in 1 ..= n {
+ if n % k == 0 {
+ s.push(v[k-1]);
+ }
+ }
+ let mut sum = 0;
+ for val in s.iter() {
+ sum += val*val;
+ }
+ println!("Output: {sum}");
+} \ No newline at end of file
diff --git a/challenge-252/zapwai/rust/ch-2.rs b/challenge-252/zapwai/rust/ch-2.rs
new file mode 100644
index 0000000000..2d028646bf
--- /dev/null
+++ b/challenge-252/zapwai/rust/ch-2.rs
@@ -0,0 +1,18 @@
+fn main() {
+ for n in [5, 7, 1] {
+ proc(n);
+ }
+}
+fn proc(n : i32) {
+ println!("Input: n = {n}");
+ let mut v = Vec::new();
+ if n%2 == 1 {
+ v.push(0);
+ }
+ let k = n/2;
+ for i in 1 ..= k {
+ v.push(i);
+ v.push(-i);
+ }
+ println!("Output: {:?}",v);
+} \ No newline at end of file