Entry
Reversing long integers
Jul 5th, 2000 10:00
Nathan Wallace, unknown unknown, Hans Nowak, Snippet 119, Brian Lloyd
"""
Packages: maths
"""
"""
> I am attempting to write an efficient Python program which
> can add an integer to
> its reverse. This is quite easy to do in Lisp and Mathematica
> but (mostly out of
> curiosity) I wanted to see how one might do this in Python.
> Converting an
> integer to a string and reversing it and converting back is
> quite easy (although
> not all of these ops are primitives) but the fact that Long
> integers have the
> letter L appended means that the loop must include moving the
> L to the end of
> the reversed string prior to summing. Can anyone think of a
> particularly clever
> way to do this?
Ok, I'll bite :) I don't know if this is particularly clever,
but it works and should be pretty fast...
"""
import string
def addrev(num, join=string.join, atol=string.atol):
"""Add a long to its reverse"""
rev=list(str(num)[:-1])
rev.reverse()
return num + atol(join(rev, ''))