123321 是一个非常特殊的数,从左边读和从右边读是一样的,称这样的数为回文数。输人一个正整数n(1≤n≤54),编程求各位数字之和等于n的5位和6位十进制回文数。按从小到大的顺序输出满足条件的整数。如果输人的数不在指定的范围,输出“轻人错误,请重新输入!,如果没有各位之和与输人的数相等的5位和6位回文数,输“无满足条件的数!
while True:
try:
n = int(input())
if 1<=n<=54: break
print("输入错误,请重新输入!")
except:
print("输入错误,请重新输入!")
if n == 1:
print("无满足条件的数!")
else:
res = []
for i in range(1,10):
for j in range(10):
for k in range(10):
if i*2+j*2+k==n:
res.append(i*10001+j*1010+k*100)
elif (i+j+k)*2==n:
res.append(i*100001+j*10010+k*1100)
if res:
print(*sorted(res))
else:
print("无满足条件的数!")
😂😂😂提纲告诉我~这问题不有趣
望采纳
可以使用以下代码来求出各位数字之和等于 n 的 5 位和 6 位十进制回文数:
n = int(input())
if not (1 <= n <= 54):
print("输入错误,请重新输入!")
else:
# 枚举 5 位回文数
for i in range(10000, 100000):
if str(i) == str(i)[::-1] and sum(int(c) for c in str(i)) == n:
print(i)
# 枚举 6 位回文数
for i in range(100000, 1000000):
if str(i) == str(i)[::-1] and sum(int(c) for c in str(i)) == n:
print(i)