diff options
| -rw-r--r-- | challenge-163/james-smith/perl/ch-1.pl | 10 |
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; +} + |
