Python 蓝桥杯试题 基础练习 特殊回文数

18 篇文章 1 订阅

Python 蓝桥杯试题 基础练习 特殊回文数

问题描述:

123321是一个非常特殊的数,它从左边读和从右边读是一样的。   
输入一个正整数n,
编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式   
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998 989989 998899
数据规模和约定 1<=n<=54。

代码如下:

def huiwen(m):#定义函数
    num1 = 0
    if m == 1:
        print('00100')
    elif m % 2 == 0:   #考虑输入的值为偶数的情况
        for i in range(10):#输出为5位数时,通过遍历求第1,2(1=4,2=5)位上的数
            for j in range(10):
                if 0 <= (m - 2 * (i + j)) < 10:#输出为5位数时,第3位上的数范围
                    c = m - 2 * (i + j)
                    print(i * 10000 + j * 1000 + c * 100 + j * 10 + i)
        for i in range(100, 1000):#输出位6位数时,前三位与后三位相同,遍历取后三位的数字
            a = i // 100#百位
            b = i // 10 % 10#十位
            c = i % 10#个位
            if 2 * (a + b + c) == m:#输出位6位数时,前三位与后三位相同
                print(a * 100000 + b * 10000 + c * 1000 + c * 100 + b * 10 + a)
    else:#输入的值为奇数时,只有5位数
        for i in range(10):#通过遍历求第1,2(1=4,2=5)位上的数
            for j in range(10):
                c = m - 2 * (i + j)
                if 0 <= c < 10:#输出为5位数时,第3位上的数范围
                    num1 = i * 10000 + j * 1000 + c * 100 + j * 10 + i
                    print(num1)
                    
n = int(input())
huiwen(n)

错误总结:原本想用三层for嵌套循环直接遍历出三个数字的结果,不过好像不可以😂(如果有大佬做出来了,希望可以发到评论区让我瞅瞅🤩)。后看了其他博主的做法后(大家都好厉害),然后重新敲了一下,这次的结果非常完美😘。

知识梳理:

定义函数:
> def 函数名(参数):
> 	代码.....

// 适用于整数除法
/ 适用于浮点数除法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值