zoukankan      html  css  js  c++  java
  • 关于一道面试题的极其无聊的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,学习之余写写算法,高手勿喷~!欢迎大家关注我,并一起来学习交流哦!

  • 相关阅读:
    用wamp配置的环境,想用CMD连接mysql怎么连
    Mysql删除表
    MySQL创建表
    Leetcode 130. Surrounded Regions
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 110. Balanced Binary Tree
    Leetcode 98. Validate Binary Search Tree
    Leetcode 99. Recover Binary Search Tree
    Leetcode 108. Convert Sorted Array to Binary Search Tree
    Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal
  • 原文地址:https://www.cnblogs.com/qun542110741/p/9157102.html
Copyright © 2011-2022 走看看