From 96da103ba96c50d324397c33e79626cdcf977182 Mon Sep 17 00:00:00 2001 From: James Smith Date: Mon, 21 Nov 2022 11:44:01 +0000 Subject: Update ch-1.pl --- challenge-192/james-smith/perl/ch-1.pl | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/challenge-192/james-smith/perl/ch-1.pl b/challenge-192/james-smith/perl/ch-1.pl index 6526f74650..b2e18ab4be 100644 --- a/challenge-192/james-smith/perl/ch-1.pl +++ b/challenge-192/james-smith/perl/ch-1.pl @@ -6,12 +6,13 @@ use warnings; use feature qw(say); use Test::More; use Benchmark qw(cmpthese timethis); -use Data::Dumper qw(Dumper); +use Inline 'C'; my @TESTS = ( [5,2],[4,3],[6,1] ); is( binary_flip( $_->[0] ), $_->[1] ) for @TESTS; is( string_flip( $_->[0] ), $_->[1] ) for @TESTS; +is( c_flip( $_->[0] ), $_->[1] ) for @TESTS; done_testing(); sub string_flip { @@ -23,3 +24,15 @@ sub binary_flip { $r|=(~$n&1)<<$k++, $n>>=1 while $n; $r; } + +__END__ +__C__ +int c_flip(int n) { + int r=0; + int k=0; + while(n) { + r|=(1^n&1)<>=1; + } + return r; +} -- cgit