2014-09-24 63 views
-5

我需要通過不使用乘法運算符來模擬加入乘法如星號這是我的代碼試驗的代碼,但似乎不工作:(如何模擬加入的Java乘法

while (sum < a + b) { 
sum += a; 
} 

System.out.println (a+" x "+b+" is "+sum); 
} 
} 
+0

看起來像一個家庭作業。 – DiogoSantana 2014-09-24 03:45:08

+0

@DiogoSantana家庭作業問題不被禁止,甚至不鼓勵,並且還沒有一段時間。然而,這是一個沒有顯示任何研究工作的問題,所以低估是合適的。 – 2014-09-24 03:46:36

+0

請在你的問題中使用加法來寫出什麼是5×4。告訴我們看起來像什麼,然後指出你的代碼被複制的地方。 – Compass 2014-09-24 03:47:15

回答

0

代碼您有:

sum = 0; 
while (sum < a + b) { 
    sum += a; 
} 

只會直到總和爲a + b添加a的總和您需要在使用a * b。在這種情況下,10循環,但如上所述,你是不允許的。


因爲乘法就是反覆此外,你可以用下面的(僞)代碼做到這一點:

a = 5; b = 4 

product = 0 
acopy = a 
while acopy > 0: 
    product = product + b 
    acopy = acopy - 1 

這是基本的想法,雖然它具有負數的相當惡劣的錯誤。

如果你要處理的是還有,你需要這樣的:

product = 0 
acopy = a 
while acopy < 0: 
    product = product - b 
    acopy = acopy + 1 
while acopy > 0: 
    product = product + b 
    acopy = acopy - 1 

只有那些while循環一個運行,取決於a是陰性或陽性(如果它是零,都不會運行)。

+0

謝謝你的幫助! – 2014-09-24 04:22:42

+0

謝謝你的幫助!但是我在System.out.println中遇到了問題(a +「x」+ b +「是」+ sum); ** a **始終顯示爲0. – 2014-09-24 04:28:11

+0

這與通過減法模擬除法相同嗎? – 2014-09-24 04:32:15