乙個比較有趣的題 推算今天星期幾

2022-04-29 11:00:15 字數 1220 閱讀 3425

題目:有一天你忘記了今天是星期幾,你找來了八個人,讓他們每人說兩句話,第一句是星期幾,另一句今天不是星期幾,兩句中一句真,一句假,可能第一句為真,也可能第二句為真。最後你確定今天是星期幾,並輸出。(輸入描述,8行,每行是星期幾的阿拉伯數字。輸出描述乙個數字,表示星期幾)

輸入:[[1,2],[2,6],[3,4],[5,1],[7,7],[1,5],[1,4],[4,2]]

輸出:7

說實話,第一眼看到這個題就感覺有問題,假如我們極端的思考這個問題,八個都回答[[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]]

我們如何推算呢?還有3,4,5,6,7排除不了。所以題目還是有一定的問題,但是這裡是讓我們編寫程式,所以要求不要那麼嚴格,主要的就是判斷,在推算。

首先來判斷:

假如乙個人的答案[1,2];假如今天為x,根據題目我們可以做出判斷:

如果x == 1返回true;那麼x != 2返回false。

如果x == 1返回false;那麼x != 2返回true。

根據上邊判斷寫出計算機能夠執行的語言(這裡我使用js,判斷都一樣)

((x == 1) == true)&&((x != 2) == false)||((x == 1) == false)&&((x != 2) == true)
簡化判斷:

(x == 1)&&(x == 2)||(x != 1)&&(x != 2)
條件總結出來,現在就是將每乙個人的答案進行判斷:

function printdate(arr) }}

}}

//八個人的答案組成的陣列

var arr1 = [[1,2],[2,6],[3,4],[5,1],[7,7],[1,5],[1,4],[4,2]];

var arr2 = [[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]];

printdate(arr1);//7

printdate(arr2);//3,4,5,6,7

從arr2可以看出,該判斷對3,4,5,6,7不能再排除。

其實最主要的就是通過題目,提煉出判斷條件。

其他[我的部落格,歡迎交流!](

[我的csdn部落格,歡迎交流!](

[前端筆記專欄](

[前端筆記列表](

[遊戲列表](

乙個比較有趣的指令碼

宿舍火星wifi經常掉,然後要重啟,於是用python寫了乙個指令碼,用來遠端控制火星wifi的重啟 思路 01.使用socket通訊 02.在wifi主機 開wifi的電腦 上執行客戶端,控制機執行服務端 03.當想要重啟wifi時候,通過控制機向wifi主機傳送字元 1 04.wifi主機收到字...

乙個比較有趣的指令碼

宿舍火星wifi經常掉,然後要重啟,於是用python寫了乙個指令碼,用來遠端控制火星wifi的重啟 思路 01.使用socket通訊 02.在wifi主機 開wifi的電腦 上執行客戶端,控制機執行服務端 03.當想要重啟wifi時候,通過控制機向wifi主機傳送字元 1 04.wifi主機收到字...

乙個比較有趣的指令碼

宿舍火星wifi經常掉,然後要重啟,於是用python寫了乙個指令碼,用來遠端控制火星wifi的重啟 思路 01.使用socket通訊 02.在wifi主機 開wifi的電腦 上執行客戶端,控制機執行服務端 03.當想要重啟wifi時候,通過控制機向wifi主機傳送字元 1 04.wifi主機收到字...