一、回文数
资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
思路
(1)Python整除函数:
若a=1001,则a = m//1000 = 1
(2)求余:
b = m % 10
(3)将一个四位数的每一位分解出来:
a = n//1000
b = n//100 % 10
c = m//10 % 100 % 10
d = m % 1000 % 100 % 10
代码
l = []
for n in range(1000,10000):
a = n//1000
b = n//100 % 10
c = n//10 % 100 % 10
d = n % 1000 % 100 % 10
if a == d and b == c:
l.append(n)
for i in l:
print(i)
运行截图
二、特殊回文数
资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
代码
n=int(input())
l=[]
if n>=1 and n<=54:
for a in range(1,10):
for b in range(0,10):
for c in range(0,10):
if 2*a+2*b+c==n:
l.append(int(str(a)+str(b)+str(c)+str(b)+str(a)))
if 2*(a+b+c)==n:
l.append(int(str(a)+str(b)+str(c)+str(c)+str(b)+str(a)))
l.sort() #排序
for i in l:
print(i)
运行截图