aboutsummaryrefslogtreecommitdiff
path: root/challenge-070
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-07-26 14:23:57 +0100
committerGitHub <noreply@github.com>2020-07-26 14:23:57 +0100
commit346d8b1e04a24cfe3c3efb0bc179b9a0912e801a (patch)
tree53ddd69da52fbb7e37906fab38b03d55e4ea7f75 /challenge-070
parent228f324fa830e59f51eafba57a3e3e6d145c3ce1 (diff)
parentf6795e0b8479e43c601aeccd0d8091f7e7a67517 (diff)
downloadperlweeklychallenge-club-346d8b1e04a24cfe3c3efb0bc179b9a0912e801a.tar.gz
perlweeklychallenge-club-346d8b1e04a24cfe3c3efb0bc179b9a0912e801a.tar.bz2
perlweeklychallenge-club-346d8b1e04a24cfe3c3efb0bc179b9a0912e801a.zip
Merge pull request #1979 from E7-87-83/master
Cheok Yin's submission for Challenge 070
Diffstat (limited to 'challenge-070')
-rw-r--r--challenge-070/cheok-yin-fung/common-lisp/ch-2.lsp17
-rw-r--r--challenge-070/cheok-yin-fung/perl/ch-1.pl24
-rw-r--r--challenge-070/cheok-yin-fung/perl/ch-2.pl21
3 files changed, 62 insertions, 0 deletions
diff --git a/challenge-070/cheok-yin-fung/common-lisp/ch-2.lsp b/challenge-070/cheok-yin-fung/common-lisp/ch-2.lsp
new file mode 100644
index 0000000000..34828f265f
--- /dev/null
+++ b/challenge-070/cheok-yin-fung/common-lisp/ch-2.lsp
@@ -0,0 +1,17 @@
+;; Perl Weekly Challenge 070 Task 2 Gray Code Sequence
+
+(setf n 4)
+(setf a '(0 1))
+(setf m (- n 1))
+
+(loop for i from 1 upto m do
+ (setf 2power (expt 2 i))
+ (defun add2pow (terms) (+ 2power terms))
+ (setf b (reverse a))
+ (setf b (mapcar #'add2pow b))
+ (setf a (append a b))
+)
+
+;; now the variable a stores the n-bit gray code sequence
+
+a
diff --git a/challenge-070/cheok-yin-fung/perl/ch-1.pl b/challenge-070/cheok-yin-fung/perl/ch-1.pl
new file mode 100644
index 0000000000..042304fe2d
--- /dev/null
+++ b/challenge-070/cheok-yin-fung/perl/ch-1.pl
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+# Perl Weekly Challenge #070 Task 1 Character Swapping
+# Usage: ch-1.pl [string] [swap count] [offset]
+
+use strict;
+use warnings;
+
+my $s = 'perlandraku';
+my $C = 3;
+my $O = 4;
+
+if ($ARGV[0] and $ARGV[1] and $ARGV[2]) {
+ $s = $ARGV[0];
+ $C = $ARGV[1];
+ $O = $ARGV[2];
+}
+
+
+for my $counter (1..$C) {
+ my $t = substr $s, $counter, 1;
+ my $z = substr($s, $counter+$O, 1, $t);
+ substr $s, $counter, 1, $z;
+ print $counter, " ", $s, "\n";
+}
diff --git a/challenge-070/cheok-yin-fung/perl/ch-2.pl b/challenge-070/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..5d5b17ceb3
--- /dev/null
+++ b/challenge-070/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+# Perl Weekly Challenge #070 Task 2 Gray Code Sequence
+# Usage: ch-2.pl [order of Gray code wanted to generate]
+
+use strict;
+use warnings;
+
+my @a = (0,1);
+my $N = 3;
+if ($ARGV[0]) {$N = $ARGV[0];}
+
+sub printa {
+ print join " ", @a;
+ print "\n";
+}
+
+for my $i (2..$N) {
+ push @a, reverse (map {$_ + 2**($i-1)} @a);
+}
+
+printa;