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

题目是这样的:python

某科技公司两位科学家(甲、乙)去吃饭,坐在一家酒店靠近街道的窗口座位吃饭,在等待上菜的过程当中,闲极无聊,甲向乙出了一道猜三个女儿年龄的题目。面试

甲:我有3个女儿,3人年龄之积等于36;算法

乙:猜不出来;函数

甲:3个女儿年龄之和等于街道上的行人数;学习

乙:仍是没法肯定;blog

甲:个人大女儿叫苏珊。排序

乙:哦,我知道了。循环

请问,甲的3个女儿年龄各是多少?im

闲着无聊,加上这道题也有点意思,就试着用python写了一下img

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

解题思路

首先咱们要明白题目中给出的线索

一、3个女儿的年龄积为36

二、她们的年龄和已知,可是不能获得最终结果

三、有一个大女儿

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

就这3个条件,就能够得出咱们想要的结果,实话说,开始我也是很懵逼,后来仔细想了想,仍是有可能的,咱们能够这样来作

一、找出积为36的全部可能,并写入列表

二、上面的列表求和,结果不惟一,则为备选答案

三、列表中最大的值惟一

怎么样,这样来看是否是清晰多了

先来看看,怎么获取全部积为36的列表,咱们新建一个函数,而后循环1-36之间的全部可能3次,最后判断3个数字相加为36即写入列表,这里注意,先将列表排序,而后在写入列表的时候就能够判断去重了。

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

而后就是在来一个函数,主要是计算一个列表的全部元素的和

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

最后就是主函数了,这里主要作最后的判断,先循环列表,取出全部列表的和,若是没有重复就写入一个空列表在,若是重复了,就再次进行判断,最后一个条件,最大值是否惟一,这样就能够得出咱们想要的结果了!

完整代码以下:

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

emmm,学习之余写写算法,高手勿喷~!欢迎你们关注我,并一块儿来学习交流哦!

相关文章
相关标签/搜索