一道月薪3W的java面試題

2021-06-08 21:52:23 字數 1555 閱讀 4496

1. 智商測試開始:小明和小強都是張老師的學生,張老師的生日是某月某日,2人都不知道張老師的生日。  

2.   

3.   生日是下列10組中一天:  

4.   

5.   3月4日3月5日3月8日6月4日6月7日9月1日9月5日12月1日12月2日12月8日  

6.   

7.   張老師把月份告訴了小明,把日子告訴了小強,張老師問他們知道他的生日是那一天嗎?  

8.   

9.   小明說:如果我不知道的話,小強肯定也不知道。  

10.   

11.   小強說:本來我也不知道,但是現在我知道了。  

12.   

13.   小明說:哦,那我也知道了。  

14.   

15.   請根據以上對話推斷出張老師生日是哪一天?  

16.   

17.   

18.   

19.   

20.   

21.   

22.   

23.   

24.   

25. 1.小明說:「如果我不知道的話,小強肯定也不知道」。   

26. 這句話的潛台詞實際上是:「我應該猜對了,如果我猜錯的話,小強肯定不知道」。但小明還是不確定自己究竟猜對沒,需要小強來印證。m取什麼值能讓小明這麼說呢?顯然6和12不可取,如果m為6或12,n就有可能是2或7——小強憑2或7乙個數字就能得知張老師的生日。則m只可能是3或9,而n只能在1、4、5、8中取值。   

27. 如果m是3,n可以取三種值,結果成了「如果小明不知道,小強有可能知道(2-4,3-8),也有可能不知道(3-5)。」,在這種情況下,小明說「如果我不知道的話,小強肯定也不知道」是不符合事實的,小明不足以如此自信的這樣說。   

28. 如果m是9,則小明就知道n只能是1或者5。此時,小明的猜測正是n=1,而n究竟是不是1,小明也不確信,如果n不是1而是5,則就出現了小明說的「如果我不知道的話,小強肯定也不知道」。至此,實際上小明已經知道了,結果只有兩種情況,只等小強來確認n是不是5。   

29.   

30. 2.小強說:「本來我也不知道,但是現在我知道了」。   

31. 小強說「本來我也不知道」,驗證了n確實不是2或者7;同時,小強也知道了「m不是6或12,m只剩下3和9可取」。若n是5,則小強應該說「本來我也不知道,現在我還是不知道」。根據第一節的推斷,n=1,所以小強才能說「本來我也不知道,但是現在我知道了」。   

32.   

33. 3.小明說:「那我也知道了」   

34. 小明就等著小強的一句話了,不管小強怎麼回答,小明都會知道正確答案。如果小強說「我還是不知道」,那麼小明依然可以知道「只有n=5會讓小強茫然」,因此答案是9月5日;如果小強說「我知道了」,那麼就必然是9月1日。   

35.   

36. 其實,自始至終,小明都是明白的,他只需要小強說句華驗證他的猜測,對小明而言,是個非a即b的選擇題。因此,按照題目本身的故事發展線索,小明的第三句話是可以不用的,很多人推導的時候卻用上了這個條件——那樣就有點像做數學題了

一道月薪3萬的Java面試題目

題目內容 小明和小強都是張老師的學生,張老師的生日是某月某日,2人都不知道張老師的生日。生日是下列10組中一天 3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 張老師把月份告訴了小明,把日子告訴了小強,張老師問他們知道他的生日是那一天嗎?小明...

Java多型一道面試題

下面 輸出是什麼 class a public string run a obj class b extends a public string run a obj class c extends b class d extends b public class test 關於上面所有注釋答案的解釋...

一道面試題

一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...