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

题目是这样的:

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

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

乙:猜不出来;

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

乙:还是无法确定;

甲:我的大女儿叫苏珊。

乙:哦,我知道了。

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

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

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

解题思路

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

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

2、她们的年龄和已知,但是不能得到最终结果

3、有一个大女儿

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

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

1、找出积为36的所有可能,并写入列表

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

3、列表中最大的值唯一

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

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

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

然后就是在来一个函数,主要是计算一个列表的所有元素的和

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

最后就是主函数了,这里主要做最后的判断,先循环列表,取出所有列表的和,如果没有重复就写入一个空列表在,如果重复了,就再次进行判断,最后一个条件,最大值是否唯一,这样就可以得出我们想要的结果了!

完整代码如下:

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

emmm,学习之余写写算法,高手勿喷~!欢迎大家关注我,并一起来学习交流哦!题目是这样的:

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

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

乙:猜不出来;

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

乙:还是无法确定;

甲:我的大女儿叫苏珊。

乙:哦,我知道了。

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

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

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

解题思路

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

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

2、她们的年龄和已知,但是不能得到最终结果

3、有一个大女儿

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

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

1、找出积为36的所有可能,并写入列表

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

3、列表中最大的值唯一

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

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

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

然后就是在来一个函数,主要是计算一个列表的所有元素的和

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

最后就是主函数了,这里主要做最后的判断,先循环列表,取出所有列表的和,如果没有重复就写入一个空列表在,如果重复了,就再次进行判断,最后一个条件,最大值是否唯一,这样就可以得出我们想要的结果了!

完整代码如下:

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

emmm,学习之余写写算法,高手勿喷~!欢迎大家关注我,并一起来学习交流哦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值