Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)_百钱买百鸡python编程

69 阅读3分钟

二:思路

初遇这种问题,大家可能一时难以找到头绪。可以先确定一个量:即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个学习计划,我的学习计划主要包括规划图和学习进度表。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

了解详情:docs.qq.com/doc/DSnl3ZG…