用python给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数是0,否则反转后得到的新数的最高位数字不应该是零
时间: 2024-05-11 18:18:21 浏览: 136
可以先将整数转换成字符串,然后反转字符串,最后再将反转后的字符串转换回整数。需要注意的是,需要判断反转后的数的最高位是否为零。
代码如下:
```python
def reverse_integer(num):
if num == 0:
return 0
s = str(num)
s_reverse = s[::-1]
new_num = int(s_reverse)
# 判断最高位是否为零
if new_num != 0 and new_num // 10**(len(s)-1) == 0:
return 0
return new_num
```
测试一下:
```python
print(reverse_integer(123)) # 输出 321
print(reverse_integer(120)) # 输出 21
print(reverse_integer(0)) # 输出 0
```
相关问题
用python写一个给定一个整数,将该数各个位上数字反转得到一个新数新数不得有多余的前导零
以下是Python代码:
```python
def reverse_integer(num):
if num == 0:
return 0
# 判断正负号
sign = 1
if num < 0:
sign = -1
num = -num
# 反转数字
reverse_num = 0
while num > 0:
reverse_num = reverse_num * 10 + num % 10
num //= 10
# 加上正负号
reverse_num *= sign
return reverse_num
```
代码说明:
1. 首先判断输入的整数是否为0,如果是直接返回0。
2. 判断整数的正负号,并将负数转为正数处理。
3. 反转数字,使用while循环,每次取出最后一位数字,并将其加到反转后的数字上。
4. 最后再加上正负号,返回反转后的数字。
测试代码:
```python
print(reverse_integer(123)) # 321
print(reverse_integer(-123)) # -321
print(reverse_integer(120)) # 21
print(reverse_integer(0)) # 0
```
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零,如: 输入:-380,则输出:-83 用python的归递算法
可以使用递归算法实现整数反转,具体实现如下:
```python
def reverse_integer(x):
# 处理负数情况
if x < 0:
return -reverse_integer(-x)
# 处理个位数情况
if x < 10:
return x
# 处理多位数情况
else:
# 通过递归获取低位数反转后的结果
low = reverse_integer(x // 10)
# 获取最高位数字
high = x % 10
# 将高位数字和低位数反转后的结果拼接成新的整数
result = int(str(high) + str(low))
return result
```
我们可以通过以下方式测试该函数:
```python
print(reverse_integer(123)) # 输出:321
print(reverse_integer(-456)) # 输出:-654
print(reverse_integer(0)) # 输出:0
```
注意,如果原数为负数,我们需要先将其转为正数,然后再将反转后的结果变为负数。同时,如果原数为个位数或零,直接返回原数即可。
阅读全文