问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
小AO思路:根据题意,输出的六位数的和要与输入的数相等,并且这六位数要对称,我们可以想到通过a == a[::-1]来判断是否对称,最后再判断相加是否等于输入的数值。
def f(i):
a = str(i)#转为字符串
if a == a[::-1]:#判断是否为回文数
return True
else:
return False
def ff(i,n):
a = str(i)#转为字符串
b = sum(int(a[j]) for j in range(len(a)))#求和
if n == b:#判断求和出的b是否于输入的数相等
return True
else:
return False
n = int(input())
for i in range(10000,1000000):
if f(i):
if ff(i,n):
print(i)