【蓝桥杯Python】基础练习9:特殊回文数

试题 基础练习 特殊回文数




题目


资源限制

时间限制:1.0s 内存限制:512.0MB


问题描述

123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。


输入格式

输入一行,包含一个正整数n。


输出格式

按从小到大的顺序输出满足条件的整数,每个整数占一行。


样例输入

52


样例输出

899998
989989
998899


数据规模与约定

1<=n<=54。



解答

Python源代码:

"""
Author: CharlesWYQ Time: 2021/3/3 12:06
Name: BASIC-9 特殊回文数
"""
n = int(input())

record1 = dict()
record2 = dict()
for i in range(1, 10):
    for j in range(0, 10):
        for k in range(0, 10):
            result1 = (i + j + k) * 2
            if 0 <= result1 <= 54:
                temp = int(''.join([str(x) for x in [i, j, k, k, j, i]]))
                if result1 in record1.keys():
                    record1[result1].append(temp)
                else:
                    record1[result1] = [temp]

            result2 = (i + j) * 2 + k
            if 0 <= result2 <= 54:
                temp = int(''.join([str(x) for x in [i, j, k, j, i]]))
                if result2 in record2.keys():
                    record2[result2].append(temp)
                else:
                    record2[result2] = [temp]

if n in record2.keys():
    for i in record2[n]:
        print(i)

if n in record1.keys():
    for i in record1[n]:
        print(i)



欢迎交流!
WeChat QRcode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CharlesWYQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值