python五位回文数_蓝桥杯,特殊回文数,Python
题目
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
解法一
我们首先想到的就是遍历所有五位数和六位数,将数字转成字符串再逆转然后判断是否为回文数,接着求各位数字之和判断是否等于n,满足以上两个条件就是答案。
n = int(input(''))for i in range(10000, 1000000):
num=str(i)
s= sum(int(j) for j innum)if s == n and num == num[::-1]:print(num)
以上代码提交显示运行超时。仔细一想不难发现这里其实是二重循环,因为sum()函数求和过程其实也是一个循环,从而导致算法复杂度增大。下面我们看改进代码:
n = int(input(''))for i in range(10000, 1000000):
num=str(i)if num == num[::-1]:if n == sum(int(j) for j innum):print(num)
以上代码显示通过。因为这里的算法复杂度已经降低了很多,我们先判断是否为回文数再来求数字之和,因为满足回文数的数字并不多,因此减少了很多无效的求和运算。
解法二
我们采用逆向思维,先保证是回文数再判断数字之和是否等于n。根据回文数左右两边对称的特点,我们可以将五位数到六位数的循环转换成三位数到四位数的循环。
n = int(input(''))
x=[]for i in range(100, 1000):if sum(map(int, str(i) + (str(i)[:2])[::-1])) ==n:
x.append(str(i)+ (str(i)[:2])[::-1])if sum(map(int, str(i) + str(i)[::-1])) ==n:
x.append(str(i)+ str(i)[::-1])for j insorted(x):print(j)
以上代码得分只有四十分。我们再看下面的改进代码:
n = int(input(''))
x=[]for i in range(100, 1000):if sum(map(int, str(i) + (str(i)[:2])[::-1])) ==n:
x.append(str(i)+ (str(i)[:2])[::-1])if sum(map(int, str(i) + str(i)[::-1])) ==n:
x.append(str(i)+ str(i)[::-1])for j insorted(map(int, x)):print(j)
我们观察两处代码的差异,其实只在对列表排序的时候将元素转成整型而已,至于为什么会得到不同的结果我想不清楚,如果有知道原因的读者烦请私聊我或者在下面留言。
python五位回文数_蓝桥杯,特殊回文数,Python相关推荐
- python求立方尾不变_蓝桥杯—立方尾不变,有些数字的立方的末尾正好是该数字本身...
今天刷了一道蓝桥杯的习题,题目的要求如下: 立方尾不变 有些数字的立方的末尾正好是该数字本身. 比如:1,4,5,6,9,24,25,.... 请你计算一下,在10000以内的数字中(指该数字,并非它 ...
- python程序判断梅森素数_蓝桥杯每日一题(9):梅森素数(python)
Topic: 假如一个数据的全部真因子之和相当于本身,则称它为"完全数"或"完美数" 比如:6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + ...
- python求立方尾不变_蓝桥杯:单词分析——————Python
题目 试题 G: 单词分析 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 [问题描述] 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超 ...
- python语言单词接龙_[蓝桥杯][算法训练VIP]单词接龙 (C语言代码)
解题思路: 注意事项: 参考代码: #include #include #include int long_best=0,n; int * shu_zu, * zhefuc_size; char * ...
- 蓝桥杯——特殊回文数
蓝桥杯--特殊回文数 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行, ...
- 蓝桥杯练习题 回文数
蓝桥杯练习题 回文数 问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数. 输出格式 按从小到大的顺序输出满足条件的四位十进制数. #include< ...
- 【蓝桥杯Python组】2022年第十三届蓝桥杯省赛B组Python解题思路详解
第十三届蓝桥杯省赛B组Python解题思路详解 因为今年采用线上的举办方式进行比赛,所以组委会对题目做了一定的调整,将原来的5道填空+5道编程题变成了2道填空+8道编程题,据说是为了防止抄袭.其实题目 ...
- 蓝桥杯之算法模板题 Python版
蓝桥杯之算法模板题 Python版 文章目录 蓝桥杯之算法模板题 Python版 线段树 DP 动态规划 dp, LIS ** 01背包 完全背包 多重背包 混合背包 分组背包 区间DP 一.什么是区 ...
- 2021年第十二届蓝桥杯软件类省赛python组
目录 2021年第十二届蓝桥杯软件类省赛python组 1.卡片 常规做法 使用functions.Counter计数 2.直线 3.货物摆放 4.路径 5.回路计算 递归--太慢跑不出来 状态压缩D ...
最新文章
- 用IE重起计算机或者关机
- 我用2年时间从财务到数据分析师!
- Struts2学习笔记《二》
- SAP License:ERP系统会计凭证中的那些必填项
- Ajax提交数据判断员工编号是否存在,及自动填充与员工编号所对应的员工姓名。...
- Linux内核与文件系统分析
- 基于遗传算法的高校排课系统研究
- 高新计算机考试培训 ppt,全国计算机高新技术考试.ppt
- 树莓派3B制作无线wifi(桥接模式)
- ASP.NET微信开发视频教程
- 如何用matlab求出矩阵简化阶梯形顺带算出主元所在的列
- 隧道技术_复杂地质的隧道施工技术(下)
- 【个人笔记】SIPp学习-注册,呼叫与超时
- 用flatpak安装程序(比如GIMP)的方法
- jQuery判断email地址 邮箱地址 email regex
- C++学习(三)LHS RHS
- 银行卡被冻结 应该怎么处理?
- Oxygen Not Included
- android p nokia 6,Nokia 6评测 | Nokia 6系统体验_Nokia 6怎么样_诺基亚最新手机_什么值得买...
- 大学物理·第15章【量子物理】