给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(如:输入-380,输出-83)。
时间: 2024-10-11 18:09:56 浏览: 41
这是一个常见的编程任务,通常被称为“翻转整数”或“反序整数”。你可以通过以下步骤实现这个功能:
1. **初始化变量**:创建两个变量,一个用于存储原始整数,另一个用于存储反转后的整数。如果输入是负数,需要额外记录正负标志。
2. **处理负数**:如果原始数值为负,先将其转换为正数并记录下正负标志,然后在反转后的结果前面添加负号。
3. **拆分每一位**:使用循环或字符串分割方法,将整数拆分为一个个单独的数字(通常是字符数组或列表)。
4. **反转顺序**:从低位到高位(最右边的数字开始),依次将每位数字添加到新的整数字符串或数组中。
5. **合并和转换回整数**:将反转后的数字序列重新组合成一个新的整数,并确保第一位不是零(如果是零,手动修改为第一个非零数字,或者直接加上一个最小的非零数,如1)。
6. **检查边界条件**:对于零输入,直接返回零;对于其他情况,如果新整数的最高位是零,需要手动调整。
例如,在Python中可以这样做:
```python
def reverse_integer(n):
sign = -1 if n < 0 else 1
n = abs(n)
reversed_str = str(n)[::-1]
# 如果第一位是零,处理特殊情况
if reversed_str[0] == '0':
leading_zero_count = 1
for char in reversed_str[1:]:
if char != '0':
break
leading_zero_count += 1
reversed_str = '9' * leading_zero_count + reversed_str[leading_zero_count:]
return sign * int(reversed_str)
# 示例
print(reverse_integer(-380)) # 输出 -83
```
阅读全文