關於一道面試題的極其無聊的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,學習之餘寫寫算法,高手勿噴~!歡迎你們關注我,並一塊兒來學習交流哦!

相關文章
相關標籤/搜索