aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Smith <js5@sanger.ac.uk>2022-11-21 08:03:23 +0000
committerGitHub <noreply@github.com>2022-11-21 08:03:23 +0000
commit113e4dfdd5adc942e5b467fffe5f54996b7aa4a3 (patch)
treed2d85f853fc9f1e44172bcc82d982500e5233886
parentcadae443be15eba8911bf85625bdff59b8b6b04f (diff)
downloadperlweeklychallenge-club-113e4dfdd5adc942e5b467fffe5f54996b7aa4a3.tar.gz
perlweeklychallenge-club-113e4dfdd5adc942e5b467fffe5f54996b7aa4a3.tar.bz2
perlweeklychallenge-club-113e4dfdd5adc942e5b467fffe5f54996b7aa4a3.zip
Create ch-2.pl
-rw-r--r--challenge-192/james-smith/perl/ch-2.pl23
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-192/james-smith/perl/ch-2.pl b/challenge-192/james-smith/perl/ch-2.pl
new file mode 100644
index 0000000000..36b2dc27dc
--- /dev/null
+++ b/challenge-192/james-smith/perl/ch-2.pl
@@ -0,0 +1,23 @@
+#!/usr/local/bin/perl
+
+use strict;
+
+use warnings;
+use feature qw(say);
+use Test::More;
+use Benchmark qw(cmpthese timethis);
+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;
+done_testing();
+
+sub equal_dis {
+ my($av,$k) = (0,0);
+ $av+=$_ for @_;
+ return -1 if $av%@_;
+ $av/=@_;
+ $k+=abs($av-$_[0]),$_[1]-=$av-shift while @_>1;
+ $k;
+}