【Python训练营】Python每日一练----第8天:数的分解
【摘要】
📢📢📢📣📣📣 🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜 🏅🏅🏅CSDN Python领域优质创作者,大二在读,欢迎大家...
📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜
🏅🏅🏅CSDN Python领域优质创作者,大二在读,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++)
💕入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟✨✨✨
前言:
【Python训练营】是针对Python语言学习所打造的一场刷题狂欢party! 对基础知识把握不牢固的话,欢迎参考此套课程:Python公开课 搭配使用最佳嗷~喜欢的话就抓紧订阅起来吧!🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者在文末添加我的VX,我会拉你进学习交流群,我们一起交流学习,报团打卡
Python每日一练:
题目描述
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
把 20192019 分解成 33 个各不相同的正整数之和,并且要求每个正整数都不包含数字 22 和 44,一共有多少种不同的分解方法?
注意交换 33 个整数的顺序被视为同一种方法,例如 1000+1001+181000+1001+18 和 1001+1000+181001+1000+18 被视为同一种。
运行限制
最大运行时间:1s
最大运行内存: 128M
解题思路
- 题目中要求不含有2和4,我们可以先将不含有这两个数的数字求出来,方便后续使用,建立一个列表,将符合条件的数据筛选出来,放到列表中;
- 因为还要考虑顺序问题,我们可以直接令三个数据依次增大,这样就会有效避免数据顺序发生变化而数据不变的重复情况;
注意:
三个数k=2019-i-j,但是别忘了k不是我们筛选出来的数据,因此我们还需要再进行一次判断,判断其是否含有2或者4。
源码分享
# 一万次悲伤,依然会有Dream,我一直在最温暖的地方等你!
# @Time : 2022/1/24 13:59
# @Author : 是Dream呀!
# @File : 数的分解.py
list1 = []
for i in range(1,2017):
a = str(i)
if a.count('2') == 0 and a.count('4') == 0:
list1.append(i)
# print(list1)
n = 0
for i in list1:
for j in list1:
if j > i:
k = 2019-i-j
if k > j and k in list1:
n += 1
print(n)
学习总结
1.因顺序而重复的问题,我们可以固定大小顺序,直接让第第一个数小于第二个数,第二个数小于第三个数,依次类推…
2.对数据有类型有要求的题目,我们可以先将符合要求的数据求出来,然后直接从这些数据中查找需要的数据,这样会节省很多的时间。
🏅今天是我在Python训练营的第 8 天,希望每天都能见到最棒的你🏅
🏆往期文章----好文推荐🏆
🥇 [Python公开课]零基础玩转Python基础篇----第一节:Python的自我介绍
🥈 [Python公开课]零基础玩转Python进阶篇----第一节:Python中的文件操作
🥉 快来一场一场刷题狂欢的party吧!----【Python训练营】
🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~
文章来源: xuyipeng.blog.csdn.net,作者:是Dream呀,版权归原作者所有,如需转载,请联系作者。
原文链接:xuyipeng.blog.csdn.net/article/details/122600760
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)