反转数字算法

时间:2015-10-17 09:12:41

标签: python algorithm integer

我在考虑扭转整数的方法,我想出了这个:

num = 123456
power = len(str(num))
result = 0
for i in range(1, power):
    result += (num % 10) * 10**(power - i)
    num = int(num / 10)
result += num

print(result)

我正在浏览其他人的算法,我没有看到任何人使用这种方法与指数。

例如,他的不是我的:

public long  reverse(long x)
    {
        long result = 0;
        while (x != 0)
        {
            result = result * 10 + x % 10;
            x = x / 10;
        }
        return result;
    }

我的算法是否低劣?比如,由于指数部分,是否需要更多时间来计算反转数?

1 个答案:

答案 0 :(得分:2)

whilefor循环在两个解决方案中都经过相同的迭代次数。所以从那个意义上说它并不逊色。

您的解决方案包含从数字到字符串的转换,因此可以避免。但是,由于Python允许您轻松地进行此类转换,并且如果这样可以提高代码的可读性,那么在我看来,这并不会使您的代码变得更低。虽然,尽管如此,考虑在评论中提出的解决方案:)