题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。数据范围: − 1 0 50 ≤ � ≤ 1 0 50 , � ≠ 0 −10 50 ≤N≤10 50 ,N =0 输入描述 每 1 1 行一个整数 � N 输出描述 每 1 1 行一个整数,表示反转后的新数. 样例输入 Copy to Clipboard 123 -380 样例输出 Copy to Clipboard 321 -83
时间: 2024-01-17 07:03:17 浏览: 177
这是一个很简单的数字反转问题,可以通过将数字转换成字符串,然后反转字符串再转换成数字来实现。具体的实现可以参考下面的代码:
C++代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
cin >> s;
if (s[0] == '-') {
cout << "-";
s = s.substr(1);
}
while (s.size() > 1 && s[0] == '0') {
s = s.substr(1);
}
string t(s.rbegin(), s.rend());
cout << t << endl;
return 0;
}
```
Python代码:
```python
s = input().strip()
if s[0] == '-':
print('-', end='')
s = s[1:]
while len(s) > 1 and s[0] == '0':
s = s[1:]
t = s[::-1]
print(t)
```
注意,上面的代码中,我们需要特别处理负数的情况,即在输出结果之前先输出一个负号,并将原数的负号去掉。同时,我们还需要判断反转后的数字是否以零开头,如果是,就需要将开头的零去掉。
相关问题
给定一个整数,将该数各个位上的数字反转得到一个新数
,例如,给定1234,输出4321。请问如何实现?
可以将这个整数转换为字符串,然后使用反转字符串的方法,最后再将结果转换为整数输出。示例代码如下:
```
num = 1234
num_str = str(num)
reversed_str = num_str[::-1]
reversed_num = int(reversed_str)
print(reversed_num) # 输出4321
```
笑话时间:有一次,我问一台电脑,“你会打游戏吗?”电脑回答:“我是一台电脑,我不会有游戏感。”
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零
这个问题可以通过将数字转换为字符串,然后反转字符串,再将反转后的字符串转换为数字的方式来解决。以下是代码示例:
```
def reverse_num(num):
if num == 0:
return 0
num_str = str(num)
reversed_str = num_str[::-1]
if reversed_str[0] == '0':
reversed_str = reversed_str[1:]
return int(reversed_str)
```
使用示例:
```
num = 12345
reversed_num = reverse_num(num)
print(reversed_num) # 输出 54321
num = 12000
reversed_num = reverse_num(num)
print(reversed_num) # 输出 21
```
注意,默认情况下,反转字符串的方式会保留原字符串的第一个字符(即最高位数字),所以需要判断反转后的字符串是否以0开头,如果是,则需要将第一个字符去除。
阅读全文