给定一个整数n(-100,000,000≤n≤100,000,000),输出按位逆序的数字。比如输入1234,输出4321,输入-2589,输出-9852。如果末尾为0,则逆序输出的时候不应带前导的0。比如60500,逆序输出为506;-120300,逆序输出为-3021。
时间: 2024-02-13 20:04:40 浏览: 90
这是一个常见的数字操作问题,可以使用字符串的切片和翻转操作来实现。以下是 Python 代码实现:
```python
n = input() # 读入整数n
if n[0] == '-': # 判断n的正负性
print("-", end="") # 如果n为负数,则先输出负号
n = n[1:] # 去掉负号,方便后续操作
n = n.rstrip("0") # 去除n末尾的0
n = n[::-1] # 翻转n
print(n)
```
这段代码中,首先判断输入的整数n是否为负数,如果是,则输出负号,并将n的负号去掉,方便后续操作。接着使用 rstrip() 函数去除n末尾的0,然后使用字符串的切片和翻转操作逆序输出n。注意要使用 end="" 来避免输出多余的换行符。
相关问题
给定一个整数n输出按位逆序的数字
以下是Python代码实现:
```
n = int(input())
rev = 0
while n > 0:
digit = n % 10
rev = rev * 10 + digit
n //= 10
print(rev)
```
首先将输入的整数n转换为整型变量。接着,使用一个while循环,每次取出n的末位数字并将其加入结果变量rev的末尾。同时,将n除以10以去除末位数字。最终,当n变成0时,说明所有数字都已经被取出,此时rev就是按位逆序的数字。
用c语言实现给定一个整数n(-100,000,000≤n≤100,000,000),输出按位逆序的数字。比如输入1234,输出4321,输入-2589,输出-9852。如果末尾为0,则逆序输出的时候不应带前导的0。比如60500,逆序输出为506;-120300,逆序输出为-3021。
好的,以下是用 C 语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char n[50]; // 定义字符数组存储整数n的字符串形式
scanf("%s", n); // 读入整数n
if (n[0] == '-') // 判断n的正负性
{
printf("-"); // 如果n为负数,则先输出负号
memmove(n, n + 1, strlen(n)); // 去掉负号,方便后续操作
}
int i = 0;
while (n[i] == '0') // 去除n末尾的0
{
i++;
}
int len = strlen(n); // 获取n的长度
for (int j = len - 1; j >= i; j--) // 逆序输出n
{
printf("%c", n[j]);
}
return 0;
}
```
这段代码中,首先定义字符数组存储整数n的字符串形式,然后判断输入的整数n是否为负数,如果是,则输出负号,并将n的负号去掉,方便后续操作。接着使用 while 循环去除n末尾的0,然后使用 for 循环逆序输出n的每一位数字。注意要使用 memmove() 函数去掉负号,并使用 strlen() 函数获取n的长度。