1. 首页
  2. Python

关于一道面试题的极其无聊的python算法实现

“u003Cdivu003Eu003Cpu003Eu003Cstrongu003E题目是这样的:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cblockquoteu003Eu003Cpu003E某科技公司两位科学家(甲、乙)去吃饭,坐在一家酒店靠近街道的窗口座位吃饭,在等待上菜的过程中,闲极无聊,甲向乙出了一道猜三个女儿年龄的题目。u003Cu002Fpu003Eu003Cpu003E甲:我有3个女儿,3人年龄之积等于36;u003Cu002Fpu003Eu003Cpu003E乙:猜不出来;u003Cu002Fpu003Eu003Cpu003E甲:3个女儿年龄之和等于街道上的行人数;u003Cu002Fpu003Eu003Cpu003E乙:还是无法确定;u003Cu002Fpu003Eu003Cpu003E甲:我的大女儿叫苏珊。u003Cu002Fpu003Eu003Cpu003E乙:哦,我知道了。u003Cu002Fpu003Eu003Cpu003E请问,甲的3个女儿年龄各是多少?u003Cu002Fpu003Eu003Cu002Fblockquoteu003Eu003Cpu003E闲着无聊,加上这道题也有点意思,就试着用python写了一下u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1528450767414ef7ea09078″ img_width=”1280″ img_height=”853″ alt=”关于一道面试题的极其无聊的python算法实现” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Ch1u003E解题思路u003Cu002Fh1u003Eu003Cpu003E首先我们要明白题目中给出的线索u003Cu002Fpu003Eu003Cpu003E1、3个女儿的年龄积为36u003Cu002Fpu003Eu003Cpu003E2、她们的年龄和已知,但是不能得到最终结果u003Cu002Fpu003Eu003Cpu003E3、有一个大女儿u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1528450996070249d788a6e” img_width=”510″ img_height=”274″ alt=”关于一道面试题的极其无聊的python算法实现” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E就找3个条件,就可以得出我们想要的结果,实话说,开始我也是很懵逼,后来仔细想了想,还是有可能的,我们可以这样来做u003Cu002Fpu003Eu003Cpu003E1、找出积为36的所有可能,并写入列表u003Cu002Fpu003Eu003Cpu003E2、上面的列表求和,结果不唯一,则为备选答案u003Cu002Fpu003Eu003Cpu003E3、列表中最大的值唯一u003Cu002Fpu003Eu003Cpu003E怎么样,这样来看是不是清晰多了u003Cu002Fpu003Eu003Cpu003E先来看看,怎么获取所有积为36的列表,我们新建一个函数,然后循环1-36之间的所有可能3次,最后判断3个数字相加为36即写入列表,这里注意,先将列表排序,然后在写入列表的时候就可以判断去重了。u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1528451423986db90019768″ img_width=”1035″ img_height=”443″ alt=”关于一道面试题的极其无聊的python算法实现” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E然后就是在来一个函数,主要是计算一个列表的所有元素的和u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F152845154940136f82c275c” img_width=”637″ img_height=”461″ alt=”关于一道面试题的极其无聊的python算法实现” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E最后就是主函数了,这里主要做最后的判断,先循环列表,取出所有列表的和,如果没有重复就写入一个空列表在,如果重复了,就再次进行判断,最后一个条件,最大值是否唯一,这样就可以得出我们想要的结果了!u003Cu002Fpu003Eu003Cpu003E完整代码如下:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15284517038267a334b8bbc” img_width=”1303″ img_height=”1643″ alt=”关于一道面试题的极其无聊的python算法实现” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eemmm,学习之余写写算法,高手勿喷~!欢迎大家关注我,并一起来学习交流哦!u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:关于一道面试题的极其无聊的python算法实现

主题测试文章,只做测试使用。发布者:敢吻,转转请注明出处:http://www.cxybcw.com/13300.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code