2012-03-22 54 views
3

今天,我有一個開發者的工作面試,我不得不這樣做是能力傾向測試... 我卡住了一個2個問題:使用ADD,SUB,MULT和DIV將某些值放入框中?

box 1 box 2 box 3 
A  B  C 

如何把一個與只有4運營商每個盒子( ADD,SUB,MULT和DIV)?

box 1 box 2 box 3 

您有可以在任BOX1 BOX2或BOX3數字1,2和3,但我們不知道其中是如何把7箱3,...?

有人可以解釋我該怎麼做嗎? PS:語法:ADD,1,2,3- => BOX3 = BOX1 + BOX2

謝謝

+0

您是否必須從各自的框中刪除B和C,以便每個框最後只有一個字母:A? – kasavbere 2012-03-22 21:13:45

回答

4

對於第一個問題,可以通過只存儲一組盒B和C等於2A + A有每個:

ADD 2, 1, 1 
ADD 3, 1, 1 

現在,只需減去從每箱:

SUB 2, 2, 1 
SUB 3, 3, 1 

這將導致存儲無處不在。產生的程序是這樣

ADD 2, 1, 1 // Box 1 = A Box 2 = 2A Box 3 = C 
ADD 3, 1, 1 // Box 1 = A Box 2 = 2A Box 3 = 2A 
SUB 2, 2, 1 // Box 1 = A Box 2 = A Box 3 = 2A 
SUB 3, 3, 1 // Box 1 = A Box 2 = A Box 3 = A 

對於第二個問題,一個可愛的伎倆將是其自身的價值來劃分有些盒子來裝1進去。例如:

DIV 1, 1, 1 

現在,讓我們把2插入盒2通過加倍盒1的內容,並且將其存儲有:

ADD 2, 1, 1 

現在,讓我們把4成箱3通過的內容倍增盒2並將其存儲有:

ADD 3, 2, 2 

接着,在箱3的內容添加添加2至框3這使得盒3保持6:

ADD 3, 3, 2 

最後,通過增加在內容箱3加1框三此使得箱3擁有7:

ADD 3, 3, 1 

總計劃因此

DIV 1, 1, 1 // Box 1 = 1 Box 2 = ? Box 3 = ? 
ADD 2, 1, 1 // Box 1 = 1 Box 2 = 2 Box 3 = ? 
ADD 3, 2, 2 // Box 1 = 1 Box 2 = 2 Box 3 = 4 
ADD 3, 3, 2 // Box 1 = 1 Box 2 = 2 Box 3 = 6 
ADD 3, 3, 1 // Box 1 = 1 Box 2 = 2 Box 3 = 7 

希望這有助於!

+0

完美謝謝:) – Johny19 2012-03-22 19:52:31

+0

幹得好!第二步可能需要一步,否? DIV 1,1,1; ADD 1,1,1; ADD 2,2,3; ADD 1,2,3. – kasavbere 2012-03-22 21:23:43

+0

@ kasavbere-我不確定我看到這是如何工作的 - 你能詳細說明一下嗎?您的方法必須與我的方法不同,因爲它看起來像使用Box2和Box3的值而不知道它們的值。 – templatetypedef 2012-03-22 21:27:18

相關問題