我在考虑扭转整数的方法,我想出了这个:
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;
}
我的算法是否低劣?比如,由于指数部分,是否需要更多时间来计算反转数?
答案 0 :(得分:2)
while
和for
循环在两个解决方案中都经过相同的迭代次数。所以从那个意义上说它并不逊色。
您的解决方案包含从数字到字符串的转换,因此可以避免。但是,由于Python允许您轻松地进行此类转换,并且如果这样可以提高代码的可读性,那么在我看来,这并不会使您的代码变得更低。虽然,尽管如此,考虑在评论中提出的解决方案:)