diff options
| author | drbaggy <js5@sanger.ac.uk> | 2021-06-29 07:12:46 +0100 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2021-06-29 07:12:46 +0100 |
| commit | 3acc736941b159d43da7ff15ac8130674b4f3701 (patch) | |
| tree | 5d3078dcf0e916d0c6402f8a904ee3e7a0d6ccb9 | |
| parent | 107a17eac9fd53ceb1c3bb6905577a32570d240d (diff) | |
| parent | 3c9d3a537f55924259a24f97e0acb04a3305c0f1 (diff) | |
| download | perlweeklychallenge-club-3acc736941b159d43da7ff15ac8130674b4f3701.tar.gz perlweeklychallenge-club-3acc736941b159d43da7ff15ac8130674b4f3701.tar.bz2 perlweeklychallenge-club-3acc736941b159d43da7ff15ac8130674b4f3701.zip | |
Merge branch 'master' of github.com:drbaggy/perlweeklychallenge-club
| -rw-r--r-- | challenge-119/james-smith/README.md | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/challenge-119/james-smith/README.md b/challenge-119/james-smith/README.md index 612aeabcc8..3ee6e599cc 100644 --- a/challenge-119/james-smith/README.md +++ b/challenge-119/james-smith/README.md @@ -130,32 +130,27 @@ use overload '++' => 'incr'; use overload '""' => 'str'; sub new { - my $x = [0]; - bless $x, 'Three'; - return $x; + return bless [], 'Three'; } sub has_double_one { - my($f,@v) = @{$_[0]}; - while(@v) { - return 1 if $f == 1 && $v[0] == 1; - $f = shift @v; - } + my( $f, @v ) = @{$_[0]}; + ( $f == 1 && $v[0] == 1 ) ? ( return 1 ) : ( $f = shift @v ) while @v; return 0; } sub incr { - my $v = shift; - my $ptr; - for( $ptr = @{$v}-1; $ptr>-1 && ++$v->[$ptr]>3; $ptr--) { - $v->[$ptr] = 1; + my($v,$ptr) = (shift,-1); + for( $ptr = $#$v; $ptr>-1 && ++$v->[$ptr]>3; $ptr--) { + $v->[$ptr]=1; } unshift @{$v}, 1 if $ptr < 0; } sub str { - return join '', @{$_[0]}; + return join '',@{$_[0]}; } + 1; ``` |
