盘点一道使用Python编程来解决的基础算法题
共 1501字,需浏览 4分钟
·
2022-05-20 20:19
回复“书籍”即可获赠Python从入门到进阶共10本电子书
大家好,我是我是Python进阶者。
一、前言
前几天在Python星耀群,【冫马讠成】大佬问了一个基础的算法问题,这里拿出来给大家分享下。
![](https://filescdn.proginn.com/59060d8a6cfd9c100eca8fd12e65e968/55ab4dbdab1bafd6b5a649605e40eb23.webp)
二、实现过程
这里给大家分享三个思路,觉得还挺不错的,分享给大家,一起学习学习。
方法一
这个方法来自【冫马讠成】大佬分享的思路和代码,如下所示:
y = 1
while(True):
if y % 2== y % 4 == y % 8 and y % 3== 0 and y % 7 == 0 and y % 9 == 0 and y % 5 == 4 and y % 6 == 3:
print("篮子里总共有鸡蛋: %s(个)"%y)
break
y += 1
![](https://filescdn.proginn.com/49d49fafa4c207b806071522d719cd33/65339a2dd11347b38b1f2178ecf7a93e.webp)
虽然挨个进行取值确实慢了一些,不过也确实可以实现,下面给大家介绍的两个方法在这个方法上做了算法优化,一起来看看吧!
方法二
这个方法来自【数据分析新手-瑜亮】大佬分享的思路和代码,如下所示:
a = 9
while True:
if a%5 == 4 and a%7 == 0 and a%8 == 1 and a%9 == 0:
print(a)
break
a += 9
![](https://filescdn.proginn.com/c7d0bf257f4dc66793c5d350845dfc24/f1c2dbaafd3dbde3bf3ef1dd763cba80.webp)
这个方法自增9,比方法一的小米加步枪确实要快一些,方法优化了。不慌,下面来个更快的。
方法三
这个思路来自【🌑(这是月亮的背面)】大佬,如下图所示:
![](https://filescdn.proginn.com/fa84d0780fedb09a5849091e711b8c47/cc1478735688ed498792f60e3035462a.webp)
代码简单修改下即可:
y = 63
while(True):
if y % 2== y % 4 == y % 8 and y % 3== 0 and y % 7 == 0 and y % 9 == 0 and y % 5 == 4 and y % 6 == 3:
print("篮子里总共有鸡蛋: %s(个)"%y)
break
y += 63
只需要注意一点即可,如下图所示:
![](https://filescdn.proginn.com/b486efe640d4dce8f5c039ff4da78dc8/69439abd11ade8468bef70ed4ce66a7f.webp)
如此,完美的满足了粉丝的需求。
总结
大家好,我是Python进阶者。这篇文章基于粉丝提问,在实际工作中运用Python编程实现了求值问题,在实现过程中,巧妙的运用了算法,依次优化,顺利的帮助粉丝解决了问题,加深了对Python编程的认识。
最后感谢粉丝【冫马讠成】提问,感谢【冫马讠成】、【数据分析新手-瑜亮】、【🌑(这是月亮的背面)】大佬给予的思路和代码支持,感谢粉丝【李欣悦】、【dcpeng】等人参与探讨和学习。
文中针对该问题,给出了三个方法,小编相信肯定还有其他的方法,欢迎大家积极尝试。
![](https://filescdn.proginn.com/5adea505849d828650868efc4cc01bf1/7dd5323e20b145837509f8dd15a8218b.webp)
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
------------------- End -------------------
往期精彩文章推荐:
![](https://filescdn.proginn.com/94036b167af036cebd9249046126435c/ca7fa9350786c48c0463a264739ababa.webp)
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~~