關於一道面試題的極其無聊的python演算法實現

2021-08-20 14:08:55 字數 2390 閱讀 9312

題目是這樣的:

某科技公司兩位科學家(甲、乙)去吃飯,坐在一家酒店靠近街道的視窗座位吃飯,在等待上菜的過程中,閒極無聊,甲向乙出了一道猜三個女兒年齡的題目。

甲:我有3個女兒,3人年齡之積等於36;

乙:猜不出來;

甲:3個女兒年齡之和等於街道上的行人數;

乙:還是無法確定;

甲:我的大女兒叫蘇珊。

乙:哦,我知道了。

請問,甲的3個女兒年齡各是多少?

閒著無聊,加上這道題也有點意思,就試著用python寫了一下

解題思路

首先我們要明白題目中給出的線索

1、3個女兒的年齡積為36

2、她們的年齡和已知,但是不能得到最終結果

3、有乙個大女兒

就這3個條件,就可以得出我們想要的結果,實話說,開始我也是很懵逼,後來仔細想了想,還是有可能的,我們可以這樣來做

1、找出積為36的所有可能,並寫入列表

2、上面的列表求和,結果不唯一,則為備選答案

3、列表中最大的值唯一

怎麼樣,這樣來看是不是清晰多了

先來看看,怎麼獲取所有積為36的列表,我們新建乙個函式,然後迴圈1-36之間的所有可能3次,最後判斷3個數字相加為36即寫入列表,這裡注意,先將列表排序,然後在寫入列表的時候就可以判斷去重了。

然後就是在來乙個函式,主要是計算乙個列表的所有元素的和

最後就是主函式了,這裡主要做最後的判斷,先迴圈列表,取出所有列表的和,如果沒有重複就寫入乙個空列表在,如果重複了,就再次進行判斷,最後乙個條件,最大值是否唯一,這樣就可以得出我們想要的結果了!

完整**如下:

某科技公司兩位科學家(甲、乙)去吃飯,坐在一家酒店靠近街道的視窗座位吃飯,在等待上菜的過程中,閒極無聊,甲向乙出了一道猜三個女兒年齡的題目。

甲:我有3個女兒,3人年齡之積等於36;

乙:猜不出來;

甲:3個女兒年齡之和等於街道上的行人數;

乙:還是無法確定;

甲:我的大女兒叫蘇珊。

乙:哦,我知道了。

請問,甲的3個女兒年齡各是多少?

閒著無聊,加上這道題也有點意思,就試著用python寫了一下

解題思路

首先我們要明白題目中給出的線索

1、3個女兒的年齡積為36

2、她們的年齡和已知,但是不能得到最終結果

3、有乙個大女兒

就這3個條件,就可以得出我們想要的結果,實話說,開始我也是很懵逼,後來仔細想了想,還是有可能的,我們可以這樣來做

1、找出積為36的所有可能,並寫入列表

2、上面的列表求和,結果不唯一,則為備選答案

3、列表中最大的值唯一

怎麼樣,這樣來看是不是清晰多了

先來看看,怎麼獲取所有積為36的列表,我們新建乙個函式,然後迴圈1-36之間的所有可能3次,最後判斷3個數字相加為36即寫入列表,這裡注意,先將列表排序,然後在寫入列表的時候就可以判斷去重了。

然後就是在來乙個函式,主要是計算乙個列表的所有元素的和

最後就是主函式了,這裡主要做最後的判斷,先迴圈列表,取出所有列表的和,如果沒有重複就寫入乙個空列表在,如果重複了,就再次進行判斷,最後乙個條件,最大值是否唯一,這樣就可以得出我們想要的結果了!

完整**如下:

一道關於fork()的面試題

昨天師兄乙個朋友找外企工作,幫他做程式設計題,其中一道比較有意思,如下 問輸出什麼?為什麼?include include int main 這道題感覺很有意思,算是知識的綜合。考慮清楚了,卻挺簡單 1.fork 的理解 fork 是乙個程序建立函式,乙個程序呼叫fork 函式後,系統先給新的程序分...

一道關於排序的面試題

以前見群裡發了一道面試題 兩個已排好序陣列,a和b,現要求對他們重新聯合排序,合以的小數放入a陣列中,大的數放入b中。這題的關鍵是兩個陣列已經排好序,如果按傳統的方法,進行排序當然沒問題,但就沒有充分利用現有的條件。或許你可以想到插入排序,這樣就可以利用a陣列已排好序的優勢對其進行排序了。但傳統的插...

一道關於fork的面試題

include include include int main 使用gcc編譯,4個程序,這在我的一篇部落格有講 fork遇上for迴圈 已知其中乙個程序 列印結果是 pid1 1002,pid2 1003 求其他程序列印的結果 不考慮執行順序,程序id順序連續分配 首先fork的返回值,父程序返...