二:思路
初遇这种问题,大家可能一时难以找到头绪。可以先确定一个量:即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次,效率得到了很大的提升,以上就是百钱白鸡的问题详解。
四:总结
虽然说思维逻辑是天生的,辣条我呢也属于幸运儿,哈哈哈哈 不过辣条我觉得只要肯努力这些都不是问题,如果你坚持看到这里了,可以看到底下辣条我的名片,随时可以来骚扰我的,绝不反抗,大家加油~
现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习