问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
大致思路
这题如果仍然用之前回文数的思路会超时,所以换一个思路
只要对三位数循环,满足和等于n/2或者2(a+b)+c=n即可
注意从小到大输出,就不要放在一个循环里了
代码
n = int(input())
m = 100
while m < 1000:
a = m // 100
b = (m - a * 100) // 10
c = m - a*100 - b*10
if n == 2*(a+b)+c:
print(a, b, c, b, a, sep='', end='\n')
m += 1
m = 100
while m < 1000:
a = m // 100
b = (m - a * 100) // 10
c = m - a*100 - b*10
if n/2 == a+b+c:
print(a, b, c, c, b, a, sep='', end='\n')
m += 1