编写函数reverse(x)
时间: 2023-12-04 16:56:28 浏览: 35
以下是 Python 代码实现:
```python
def reverse(x):
"""
将整数 x 反转,例如 123 反转为 321。
如果反转后的结果溢出了 32 位整数的范围,则返回 0。
:param x: 需要反转的整数
:return: 反转后的整数
"""
sign = 1 if x >= 0 else -1 # 记录符号
x = abs(x) # 转为正数
res = 0
while x > 0:
res = res * 10 + x % 10
x //= 10
res *= sign
if res > 2**31 - 1 or res < -2**31: # 溢出处理
return 0
return res
```
使用示例:
```python
print(reverse(123)) # 输出 321
print(reverse(-123)) # 输出 -321
print(reverse(120)) # 输出 21
```
该函数将整数 x 反转,并且如果反转后的结果溢出了 32 位整数的范围,则返回 0。
相关问题
编写函数Reverse,判断整数x是否为回文数。若是回文数则返回1,否则返回0。 int Reverse(int x) { … } (2)编写函数main,输入n,调用函数Reverse,输出10~n之间的回文数,每个数据后跟一个空格且5个一行。
1. 编写函数Reverse,判断整数x是否为回文数。
回文数是指正反读都一样的数,例如121、12321等。判断一个数是否为回文数,可以将其转换为字符串,然后判断字符串是否为回文字符串。代码如下:
```
#include <string>
using namespace std;
int Reverse(int x) {
string s = to_string(x); // 将整数转换为字符串
int left = 0, right = s.size() - 1;
while (left < right) {
if (s[left] != s[right]) {
return 0; // 不是回文数,返回0
}
left++;
right--;
}
return 1; // 是回文数,返回1
}
```
2. 编写函数main,输入n,调用函数Reverse,输出10~n之间的回文数,每个数据后跟一个空格且5个一行。
```
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int count = 0; // 记录已经输出的回文数个数
for (int i = 10; i <= n; i++) {
if (Reverse(i)) { // 如果i是回文数
cout << i << " ";
count++;
if (count % 5 == 0) { // 每5个一行
cout << endl;
}
}
}
return 0;
}
```
编写并测试函数reverse(x),输出一个整数,将各位数字反转后输出
好的,下面是函数reverse(x)的实现,它可以将输入的整数x的各位数字反转后输出:
```python
def reverse(x):
if x < 0:
x = -x
sign = -1
else:
sign = 1
result = 0
while x > 0:
result = result * 10 + x % 10
x = x // 10
return sign * result
```
接下来,我们可以测试一下该函数的正确性。比如,我们可以输入一个正整数123,期望输出321:
```python
>>> reverse(123)
321
```
再比如,我们可以输入一个负整数-456,期望输出-654:
```python
>>> reverse(-456)
-654
```
因此,函数reverse(x)已经可以正确处理各种情况了。