特殊回文数
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
n=int(input())
#枚举所有情况进行判定
#改善时间复杂度:先判断奇偶性,如果是奇数一定只有五位
if n%2==1:
for a in range(1,10):
for b in range(10):
for c in range(10):
if (a + b) * 2 + c == n:
res = str(a) + str(b) + str(c)
print(res + res[1::-1])
else:
for a in range(1, 10):
for b in range(10):
for c in range(10):
if (a + b) * 2 + c == n:
res = str(a) + str(b) + str(c)
print(res + res[1::-1])
for a in range(1, 10):
for b in range(10):
for c in range(10):
if (a + b + c) * 2 == n:
res = str(a) + str(b) + str(c)
print(res + res[::-1])