aboutsummaryrefslogtreecommitdiff
path: root/challenge-059
diff options
context:
space:
mode:
authorFung Cheok Yin <61836418+E7-87-83@users.noreply.github.com>2020-05-05 14:47:23 +0800
committerGitHub <noreply@github.com>2020-05-05 14:47:23 +0800
commitfe5f04e11db88e9cc57d20d5827396252efc0577 (patch)
tree0dfc40f25c8f5b607469c6781376f6c95285732d /challenge-059
parent41c9c5663f649c712e23c6df760e35d7e4644295 (diff)
downloadperlweeklychallenge-club-fe5f04e11db88e9cc57d20d5827396252efc0577.tar.gz
perlweeklychallenge-club-fe5f04e11db88e9cc57d20d5827396252efc0577.tar.bz2
perlweeklychallenge-club-fe5f04e11db88e9cc57d20d5827396252efc0577.zip
Rename ch-2.pl to challenge-059/cheok-yin-fung/perl/ch-2.pl
Diffstat (limited to 'challenge-059')
-rw-r--r--challenge-059/cheok-yin-fung/perl/ch-2.pl31
1 files changed, 31 insertions, 0 deletions
diff --git a/challenge-059/cheok-yin-fung/perl/ch-2.pl b/challenge-059/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..420c20d172
--- /dev/null
+++ b/challenge-059/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+use strict;
+use Test::Simple tests => 2;
+use List::Util qw/max sum/;
+
+#reference: https://www.tutorialspoint.com/perl/bitwise_operators_example.htm
+
+
+sub f { # compare two bit-strings by xor
+ my $hint = ($_[0] ^ $_[1]) ;
+ my $ans = sum (split //, sprintf("%b", $hint));
+ return $ans;
+}
+
+# first parameter: number of terms; remaining: terms in the list
+sub conclude {
+ my ($N, @val) = @_;
+ my $sum = 0;
+ for my $i (0..$N-2) {
+ for my $j ($i+1..$N-1) {
+ $sum += f($val[$i], $val[$j]);
+ }
+ }
+ return $sum;
+}
+
+
+ok (conclude(3,2,3,4) == 6), "bad";
+ok (conclude(2,1,3)==1), "too bad";
+
+