sub palindrate { my $X = shift; my $front = substr($X, 0, (length($X)+1)/2); my $back = reverse $front; substr($back, 0, 1) = '' if length($X) % 2; my $front2 = $front+1; my $back2 = reverse $front2; substr($back2, 0, 1) = '' if length($X) % 2; my $N1 = $front.$back; my $N2 = $front2.$back2; return (abs($X-$N1) < abs($X-$N2)) ? $N1 : $N2; }
Update: fixed typo in code so it really does work as coded now.
The algorithm was correct; the implementation was flawed...and
use warnings would have pointed it right out to me...
Further update: *busted*...It's still not quite right... 91 breaks... ...but I'm gonna leave the code as it stands
In reply to Re^4: Challenge: Nearest Palindromic Number
by herveus
in thread Challenge: Nearest Palindromic Number
by Limbic~Region
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |