經典邏輯題 張村李村誰說謊?今天到底星期幾?

2021-09-24 08:15:20 字數 1232 閱讀 4742

從前,在山的那邊,海的那邊,有一群藍。。。額,不對,有兩個村莊,乙個叫張村,乙個叫李村。這兩個村莊的人串通好了來騙外地人,張村的人星期一三五說謊 ,李村的人星期二四六說謊,其它日子都說實話。某一天,來了乙個外地人,問今天週幾?結果兩個村的人都回答「前天是我說謊的日子」,外地人:。。。

以上內容純屬虛構!!!

進入正題。。。

原題是來自mba的入學考試題目

首先我們能確定的是:如果張、李今天說謊,則張、李前天一定不說謊。反之,如果張、李今天不說謊,則張、李前天一定說謊。

所以,我只需要知道張、李今天和前天是否說謊就可以得出答案了。

廢話不多說,直接上碼

/**

* 張村這天是否說謊

* @param day

* @return

true表示說謊,false表示不說謊

*/private static boolean zhangislie (int day)

/*** 李村這天是否說謊

* @param day

* @return

true表示說謊,false表示不說謊

*/private static boolean liislie (int day)

複製**

這裡解釋一下,為什麼張村是7 != day && day % 2 != 0李村是day % 2 == 0

因為張村是1、3、5不說謊,正好是奇數,不能被2整除,所以這裡判斷餘數不為0。星期天(7)也是奇數,但是星期天他們都不說謊,所以7需要單獨判斷。 李村同理。

現在我們已經能夠知道張、李兩村在某一天是否說謊了。

我們可以再寫乙個方法,這個方法用於獲取前天是星期幾

/**

* 獲取前天星期幾

* @param day

* @return

*/private static int beforeyesterday (int day)

複製**

方法已經基本搞定了,現在就差邏輯組裝部分了

public static void main(string args) }}

複製**

**執行結果

最後的答案是:星期一。

**也許還需做進一步的優化,思路清晰最重要,感謝!

JS經典邏輯題 貳

這期接上上期講,js經典邏輯題,第二部分 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死。問 每個月的兔子總數為多少?解決這個問題的思路在於,需要知道乙個月份,還有兔子增長的規律。兔子在第乙個月和第二個月裡都只有一對兔子。第三個月開始才生了一...

經典邏輯題筆試題和答案

1 有1000瓶酒,其中只有一瓶有毒。現在用小白鼠進行實驗,小白鼠只要服用任意量有毒酒就會在24小時內死亡。問最少要用多少只小白鼠進行實驗 才能在24小時內檢測出哪瓶藥水有毒?這是乙個二進位制的問題,答案是用10只就可以。將1000瓶酒分別編號,用十隻小白鼠分別代表十位二進位制儲存,將編號為i的酒換...

50道經典Java邏輯程式設計題 1 3

程式1 題目 古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?1.程式分析 兔子的規律為數列1,1,2,3,5,8,13,21.class yue public int getyue class rabbi...