特殊回文数:
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
解决方法:
因为知道输入值的范围,并且数值并不大,可以采用循环,该种回文数可能是五位或者六位,可以分情况讨论,通过普通的计算数值,判断是否相等的方法解决。
n=int(input())
if n>=1 and n<=54:
for a in range(1,10):#首位不能为0,当回文数是五位的时候
for b in range(10):
for c in range(10):
if 2*a+2*b+c==n:
print(a*10000+b*1000+c*100+b*10+a)
for i in range(1,10):#当回文数是六位的时候
for j in range(10):
for k in range(10):
if 2*i+2*j+2*k==n:
print(i*100000+j*10000+k*1000+k*100+j*10+i)
#两个嵌套for循环位置不能颠倒,因为输出的顺序为从小到大
回文数:
问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
解决方法:
只需要考虑前两位,但是首位不能为0,直接循环输出
for i in range(1,10):
for j in range(10):
print(i*1000+j*100+j*10+i)