aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Smith <js5@sanger.ac.uk>2022-11-25 23:18:04 +0000
committerGitHub <noreply@github.com>2022-11-25 23:18:04 +0000
commit0b7b82018ea2351ea9e141ffcbc74595f277a83e (patch)
tree3bed72d7dda8523e9fe8667f835fc664e4b7b6fd
parent28e71ae69e07d6e3b2fb2b6c952f4281fac374a6 (diff)
downloadperlweeklychallenge-club-0b7b82018ea2351ea9e141ffcbc74595f277a83e.tar.gz
perlweeklychallenge-club-0b7b82018ea2351ea9e141ffcbc74595f277a83e.tar.bz2
perlweeklychallenge-club-0b7b82018ea2351ea9e141ffcbc74595f277a83e.zip
Update ch-2.pl
-rw-r--r--challenge-192/james-smith/perl/ch-2.pl10
1 files changed, 10 insertions, 0 deletions
diff --git a/challenge-192/james-smith/perl/ch-2.pl b/challenge-192/james-smith/perl/ch-2.pl
index 36b2dc27dc..88e2152047 100644
--- a/challenge-192/james-smith/perl/ch-2.pl
+++ b/challenge-192/james-smith/perl/ch-2.pl
@@ -11,6 +11,7 @@ use Data::Dumper qw(Dumper);
my @TESTS = ( [ [1,0,5], 4 ], [ [0,2,0],-1], [ [0,3,0], 2 ] );
is( equal_dis( @{$_->[0]} ), $_->[1] ) for @TESTS;
+is( equal_dis2( @{$_->[0]} ), $_->[1] ) for @TESTS;
done_testing();
sub equal_dis {
@@ -21,3 +22,12 @@ sub equal_dis {
$k+=abs($av-$_[0]),$_[1]-=$av-shift while @_>1;
$k;
}
+
+sub equal_dis2 {
+ my($av,$k,$f) = (0,0,$_[0]);
+ $av+=$_ for @_;
+ return -1 if $av%@_;
+ $av/=@_;
+ $k+=abs($av-$f),$f+=$_[$_]-$av,warn ">$_,$f,$k" for 1..$#_;
+ $k;
+}