资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
n=int(input())
l=[]
for x1 in range(1,10):
for x2 in range(10):
if 0<n-2*(x1+x2)<10:
x3=n-2*(x1+x2)
l.append(int(str(x1*10001+x2*1010+x3*100)))
if (n-2*(x1+x2))%2==0 and 0<(n-2*(x1+x2))/2<10:
x3=(n-2*(x1+x2))/2
l.append(int(str(x1*100001+x2*10010+x3*1100)[:6]))
l=sorted(l)
for x in l:
print(x)
八十分的话,题主可能思路上没啥问题,就是一些细节和实现方法上的错误。可以检查检查实现逻辑,也可以看看下面的方法。
可以尝试下述方法:
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
测试:52 输出结果如图:
希望对题主有所帮助,望采纳!!