一、问题描述
给出一个整数,你需要对该整数进行反转。假设环境不允许存储64位整数(有符号或无符号),则需将结果截断至32位整数范围内。
二、方案一:数学方法
1、思路
我们可以通过不断地将整数x
的末尾数字取出,然后将其添加到结果的末尾,来实现整数的反转。具体步骤如下:
- 初始化结果为0。
- 当
x
不为0时,取出x
的末尾数字pop
。 - 更新结果,将
result
乘以10并加上pop
。 - 更新
x
,将其除以10并向下取整。 - 重复上述步骤直到
x
为0。
2、代码实现
go
func reverse(x int) int {
if x < 0 {
return -reverse(-x)
}
sum := 0
for x > 0 {
sum = sum*10 + x%10
x /= 10
}
if sum < math.MinInt32 || sum > math.MaxInt32 {
return 0
}
return sum
}