Java程序員面試之數字填充類典型例題

今天介紹兩道典型的數字填充類題目。

Java程序員面試之數字填充類典型例題

題目1:再下面圖中問號處填_____

Java程序員面試之數字填充類典型例題

解析:

數字填充題是一種“新題型”,通過哥哥象限所在的數學的和差積商關係求中心值。

本題規律如下:第一象限+第二象限+第四象限-第三象限 = 中心值。

因此答案為 9+36+10-16 = 39


題目2:如下圖所示

Java程序員面試之數字填充類典型例題

在橫線上填寫數字,使之符合以下要求:

對應數字下填入的數字,代表上面數字在下面出現的次數,如3下面是1,代表3再下面出現1次。

解析:

此題有點繞,需要好好理解。

由題意可知,第二排數字之和應該是10,而且第二排乘以對應上面的數字之和也是10。

那麼從0開始討論。

如果0下面填寫9,則9下面必須填1,只剩下8個位置填寫0,顯然矛盾。

如果0下面填寫8,則8下面填1, 這時 0*8+8*1 = 8,而且1已經至少出現了1次,所以不能為0,也不能為1(這樣就兩個1了,矛盾),而且最大隻能是2(因為和已經為8)。所以1下面填2,剩下7個位置可以填寫,但是已經有3個不為0了,這就和0下填8矛盾,

所以0下面填寫8是錯的。

以此類推,0下填6,6下填1(1 至少已經出現一次),1下可候選的數為2/3(再寫1就矛盾了,而且此時0下和6下的數之和為6+1=7),但是如果為3,3下面就至少是1,又矛盾了。

1下只能是2,(此時下面的和為6+1+2=9),所以接下來,2下面只可能是1。這樣有4個非0項,其他填0,符合題意。

答案是 6 2 1 0 0 0 1 0 0 0


歡迎加入Java學習群:116291581 一起探討交流。

群裡有已經在公司工作的大牛,也有初學Java的新手。

也有很多在校大學生、研究生。

Java程序員面試之數字填充類典型例題


分享到:


相關文章: