【Python训练营】Python每日一练----第37天:算式计算

举报
是Dream呀 发表于 2022/04/11 18:05:52 2022/04/11
【摘要】 【Python训练营】Python每日一练----第37天:算式计算

在这里插入图片描述

📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜
🏅🏅🏅2021年度博客之星TOP100,2021年度博客之星领域TOP5,Python领域优质创作者,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++)
💕入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟✨✨✨

前言:【Python训练营】是针对Python语言学习所打造的一场刷题狂欢party! 对基础知识把握不牢固的话,欢迎参考此套课程:Python公开课 搭配使用最佳嗷~喜欢的话就抓紧订阅起来吧!🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者在文末添加我的VX,我会拉你进学习交流群,我们一起交流学习,报团打卡

@TOC

题目描述

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

看这个算式:

☆☆☆ + ☆☆☆ = ☆☆☆

如果每个五角星代表 1 ~ 9 的不同的数字。

这个算式有多少种可能的正确填写方法?

173 + 286 = 459
295 + 173 = 468
173 + 295 = 468
183 + 492 = 675

以上都是正确的填写法!

注意:111+222=333 是错误的填写法! 因为每个数字必须是不同的! 也就是说:1 ~ 9中的所有数字,每个必须出现且仅出现一次!

注意:不包括数字 “0”!

注意: 满足加法交换率的式子算两种不同的答案。 所以答案肯定是个偶数!

**运行限制**
最大运行时间:1s
最大运行内存: 128M

解题思路

  • 首先这个问题,让我们元素不能有重复,大家仔细想一下,元素不重复还有三个三位数进行相加,那一定是这三个数中都含有1~9之间的数
  • 那其实我们就可以先建一个含有1~9的列表然后从中选取三个三位数,如果前两个相加起来等于第三个,那说明我们的结果正确,次数就可以进行+1
  • 那怎样才能选出所有的可能呢,那其实我们可以依据排列的知识,对我们给定的列表进行排序,改变列表中的元素的位置,而不改变我们选取时的元素的序列,这里便用到了我们所说的itertools中的排列组合迭代器permutations使用方法
  • permutations(iterable, r=None) 函数用来在 iterable 中取出 r 个元素进行排列组合,
    各个排列组合中的元素有先后顺序区别,相当于:在这里插入图片描述
    当 r = None 时,就是对 iterable 中的所有元素进行排列。
  • 然后我们创建一个1~9的列表存储元素[x for x in range(1,10)](相当于:[1, 2, 3, 4, 5, 6, 7, 8, 9]),进行全排列,然后依次找是否符合要求的排列:100*i[0]+10*i[1]+i[2] + 100*i[3]+10*i[4]+i[5] == 100*i[6]+10*i[7]+i[8]

源码分享

# @Time : 2022/3/10 10:43
# @Author : 是Dream呀
# @File : 算式问题.py
from itertools import *
count = 0
for i in permutations([x for x in range(1,10)]):
  if 100*i[0]+10*i[1]+i[2] + 100*i[3]+10*i[4]+i[5] == 100*i[6]+10*i[7]+i[8]:
    count += 1
print(count)

学习总结

🏅今天是我在Python训练营的第 37 天,希望每天都能见到最棒的你🏅

🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~
在这里插入图片描述
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。