aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2022-05-02 09:51:24 +0100
committerdrbaggy <js5@sanger.ac.uk>2022-05-02 09:51:24 +0100
commita702e0aa6757e66d221f111f9effb9358db2ee1e (patch)
treee6b62e5443afc3bcf138a354fab9390a3b4d8e2c
parent632ee1d3e18fe9399b67bfe8b3eb472eefbf87df (diff)
downloadperlweeklychallenge-club-a702e0aa6757e66d221f111f9effb9358db2ee1e.tar.gz
perlweeklychallenge-club-a702e0aa6757e66d221f111f9effb9358db2ee1e.tar.bz2
perlweeklychallenge-club-a702e0aa6757e66d221f111f9effb9358db2ee1e.zip
shortened version
-rw-r--r--challenge-163/james-smith/perl/ch-1.pl10
1 files changed, 9 insertions, 1 deletions
diff --git a/challenge-163/james-smith/perl/ch-1.pl b/challenge-163/james-smith/perl/ch-1.pl
index cd88d3bee8..84b59f459f 100644
--- a/challenge-163/james-smith/perl/ch-1.pl
+++ b/challenge-163/james-smith/perl/ch-1.pl
@@ -14,7 +14,8 @@ my @TESTS = (
[ [2..4,2..4], 2 ], ## Check uniquification...
);
-is( bit_sum(@{$_->[0]}), $_->[1] ) for @TESTS;
+is( bit_sum( @{$_->[0]} ), $_->[1] ) for @TESTS;
+is( bit_sum_compact( @{$_->[0]} ), $_->[1] ) for @TESTS;
done_testing();
@@ -33,3 +34,10 @@ sub bit_sum {
}
$t; ## Return sum
}
+
+sub bit_sum_compact {
+ my $t = 0; my %hash = map { $_ => 1 } @_; @_ = keys %hash;
+ while(@_>1) { my $a = shift; $t+= $a&$_ for @_; }
+ $t;
+}
+