aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Smith <js5@sanger.ac.uk>2022-11-21 08:03:06 +0000
committerGitHub <noreply@github.com>2022-11-21 08:03:06 +0000
commitcadae443be15eba8911bf85625bdff59b8b6b04f (patch)
tree01045b45c346b106e2221af1341ace4a56c7e5e9
parent690c285cbe6d54e23bac98561cdbe25c070c58a6 (diff)
downloadperlweeklychallenge-club-cadae443be15eba8911bf85625bdff59b8b6b04f.tar.gz
perlweeklychallenge-club-cadae443be15eba8911bf85625bdff59b8b6b04f.tar.bz2
perlweeklychallenge-club-cadae443be15eba8911bf85625bdff59b8b6b04f.zip
Create ch-1.pl
-rw-r--r--challenge-192/james-smith/perl/ch-1.pl20
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-192/james-smith/perl/ch-1.pl b/challenge-192/james-smith/perl/ch-1.pl
new file mode 100644
index 0000000000..bc94462d44
--- /dev/null
+++ b/challenge-192/james-smith/perl/ch-1.pl
@@ -0,0 +1,20 @@
+#!/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 = ( [5,2],[4,3],[6,1] );
+
+is( binary_flip( $_->[0] ), $_->[1] ) for @TESTS;
+done_testing();
+
+sub binary_flip {
+ my($r,$k,$n) = (0,1,shift);
+ $r=(1-$n&1)*$k+$r,$k<<=1,$n>>=1 while $n;
+ $r;
+}