aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-192/james-smith/perl/ch-1.pl9
1 files changed, 5 insertions, 4 deletions
diff --git a/challenge-192/james-smith/perl/ch-1.pl b/challenge-192/james-smith/perl/ch-1.pl
index c3066f12db..89e9c957ac 100644
--- a/challenge-192/james-smith/perl/ch-1.pl
+++ b/challenge-192/james-smith/perl/ch-1.pl
@@ -17,13 +17,13 @@ is( c2_flip( $_->[0] ), $_->[1] ) for @TESTS;
done_testing();
sub string_flip {
- oct '0b'.sprintf('%b',$_[0])=~tr/01/10/r;
+ $_[0] ? oct '0b'.sprintf('%b',$_[0])=~tr/01/10/r : 0
}
sub binary_flip {
my($r,$k,$n) = (0,1,shift);
$r|=(~$n&1)<<$k++, $n>>=1 while $n;
- $r;
+ $r
}
__END__
@@ -40,10 +40,11 @@ int c_flip(int n) {
int c2_flip(int n) {
int o = n;
- int m = 1;
- while(o>>=1) {
+ int m = 0;
+ while(o) {
m<<=1;
m++;
+ o>>=1;
}
return n^m;
}