试题 基础练习 特殊回文数
题目
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模与约定
1<=n<=54。
解答
Python源代码:
"""
Author: CharlesWYQ Time: 2021/3/3 12:06
Name: BASIC-9 特殊回文数
"""
n = int(input())
record1 = dict()
record2 = dict()
for i in range(1, 10):
for j in range(0, 10):
for k in range(0, 10):
result1 = (i + j + k) * 2
if 0 <= result1 <= 54:
temp = int(''.join([str(x) for x in [i, j, k, k, j, i]]))
if result1 in record1.keys():
record1[result1].append(temp)
else:
record1[result1] = [temp]
result2 = (i + j) * 2 + k
if 0 <= result2 <= 54:
temp = int(''.join([str(x) for x in [i, j, k, j, i]]))
if result2 in record2.keys():
record2[result2].append(temp)
else:
record2[result2] = [temp]
if n in record2.keys():
for i in record2[n]:
print(i)
if n in record1.keys():
for i in record1[n]:
print(i)
欢迎交流!