一:前言 最近这段时间辣条哥发现学Python的人是越来越多,但是适不适合学Python又有几个人知道呢?说到底编程其实很多时候需要的是较强的思维逻辑能力,如果基础的思维逻辑能力不行的话那辣条就得好好劝一劝了,除非是真的热爱,愿意花别人更多的时间精力在这上面才有可能,不是辣条自卖自夸思维逻辑这个东西看不到摸不着,绝大多数是天生的,所以之后辣条我时不时给大家更新一些逻辑题,大家可以尝试的刷上一刷!助大家一臂之力
文章图片
今日主题:“百钱百鸡”,此鸡非彼鸡我们都是正经人的~ 用一百块钱去买一百只鸡,公鸡5块钱1只,母鸡3块钱1只,小 鸡1块钱3只。请问一百块能买到公鸡,母鸡,小鸡各多少只?
可以尽情的把你们的答案算出来然后再看详解,这样效果更佳。我猜答案应该会是五花八门的
【搞笑整活系列|Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)】
文章图片
二:思路 初遇这种问题,大家可能一时难以找到头绪。可以先确定一个量:即100块钱买一种鸡最多能买多 少只?如果买公鸡最多只能买20只,母鸡能买33只,小鸡能买300只,但是需要注意,鸡的数量也限定 在100只,所以不可能买300只小鸡,但是我们可以得出一个不定时方程:公鸡数量+母鸡数量+小鸡数量 =100只。这样就可以在确定一种鸡的数量下去求另外两种鸡的数量组合。这种穷举方式非常适合用循环 来解决。
文章图片
三:代码
#设定公鸡,母鸡,小鸡
cock = 0
hen = 0
chicken = 0#通过多层循环来穷举数量组合
#最外层控制遍历公鸡数量
for cock in range(0,21):
#此层控制遍历母鸡数量
for hen in range(0,34):
#此层控制遍历小鸡数量
for chicken in range(0,101):
#同时满足百钱白鸡两个条件则输出数量
if(cock*5+hen*3+chicken/3==100 and cock+hen+chicken==100):
print('cock:%s hen:%s chicken:%s'%(cock,hen,chicken))
但是从效率上来说上面这种算法进行了很多无效的计算,因为小鸡的数量在确定好公鸡,母鸡以后就 已经固定了,不需要再进行循环遍历。
#通过多层循环来穷举数量组合
#最外层控制遍历公鸡数量
for cock in range(0,21):
#此层控制遍历母鸡数量
for hen in range(0,34):
#小鸡数量为 100-公鸡-母鸡,此处就确定了数量,条件控制可以去掉数量判断
chicken = 100-cock-hen
if(cock*5+hen*3+chicken/3==100):
print('cock:%s hen:%s chicken:%s'%(cock,hen,chicken))
此时穷举的次数由21*34*101次变成了21*34次,效率得到了很大的提升,以上就是百钱白鸡的问题详解。
四:总结 虽然说思维逻辑是天生的,辣条我呢也属于幸运儿,哈哈哈哈不过辣条我觉得只要肯努力这些都不是问题,如果你坚持看到这里了,可以看到底下辣条我的名片,随时可以来骚扰我的,绝不反抗,大家加油~
文章图片
推荐阅读
- 蓝桥杯|蓝桥python——玩具蛇
- 蓝桥杯|蓝桥python——方格分割【2017 第四题】
- MySQL|MySQL知识点串讲【适用于中高级开发】-持续更新
- CTF|2021DASCTF八月挑战赛Writeup
- 蓝桥杯|蓝桥python—— 剪邮票【2016 第七题】
- 程序员|java写入mysql数据库乱码,涨姿势了!
- 备战蓝桥杯|【蓝桥python冲刺17天】——如何轻松拿捏必考数论题((第三弹))
- 备战蓝桥杯|【蓝桥python冲刺31天】——如何轻松拿捏必考数论题((第一弹))
- #|python opencv 图像像素处理基础