diff options
| author | James Smith <js5@sanger.ac.uk> | 2022-11-21 11:44:01 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-21 11:44:01 +0000 |
| commit | 96da103ba96c50d324397c33e79626cdcf977182 (patch) | |
| tree | 9df61ef7c04ef12c39c76f409bae08b943dc431d | |
| parent | 20a07ea3696dddf4bf4080f08a2bbe6031b6c15d (diff) | |
| download | perlweeklychallenge-club-96da103ba96c50d324397c33e79626cdcf977182.tar.gz perlweeklychallenge-club-96da103ba96c50d324397c33e79626cdcf977182.tar.bz2 perlweeklychallenge-club-96da103ba96c50d324397c33e79626cdcf977182.zip | |
Update ch-1.pl
| -rw-r--r-- | challenge-192/james-smith/perl/ch-1.pl | 15 |
1 files changed, 14 insertions, 1 deletions
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)<<k++; + n>>=1; + } + return r; +} |
