從前,在山的那邊,海的那邊,有一群藍。。。額,不對,有兩個村莊,乙個叫張村,乙個叫李村。這兩個村莊的人串通好了來騙外地人,張村的人星期一三五說謊 ,李村的人星期二四六說謊,其它日子都說實話。某一天,來了乙個外地人,問今天週幾?結果兩個村的人都回答「前天是我說謊的日子」,外地人:。。。以上內容純屬虛構!!!
進入正題。。。
原題是來自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...