输入一个正整数,输出大于该数的最小的回文数。
时间: 2023-05-01 20:04:13 浏览: 230
输入n个整数,输出其中最小的k个
题目意思是:输入一个整数,输出大于该数的最小回文数。
解答: 因为回文数是左右对称的,所以我们只需要考虑从中间往两边构造回文数即可。具体方法如下:
1.先把该数转换成字符类型,然后求出该数的位数和中间位置。
2.分情况讨论:如果该数位数为偶数,直接构造回文数,否则从中间位置开始往两边构造回文数。
3.最后比较构造出来的回文数和原数的大小关系即可。
示例代码:
```python
def get_next_palindromic_num(n):
"""
获取大于 n 的最小回文数
"""
num_str = str(n)
num_len = len(num_str)
mid_point = num_len // 2
left_half = num_str[:mid_point]
if num_len % 2 == 0:
right_half = left_half[::-1]
else:
right_half = left_half[-1::-1]
palindromic_num_str = left_half + right_half
palindromic_num = int(palindromic_num_str)
return palindromic_num if palindromic_num > n else get_next_palindromic_num(n+1)
n = int(input("请输入一个整数:"))
print(get_next_palindromic_num(n))
```
示例运行:
```python
请输入一个整数:118
121
```
阅读全文