我需要通过不使用乘法运算符来模拟乘法,例如星号这是我的代码试用代码,但似乎无效:(
while (sum < a + b) {
sum += a;
}
System.out.println (a+" x "+b+" is "+sum);
}
}
答案 0 :(得分:0)
您拥有的代码:
sum = 0;
while (sum < a + b) {
sum += a;
}
只会将a
添加到总和中,直到总和变为a + b
。在这种情况下,您需要在a * b
循环中使用while
,但如上所述,您不会被允许。
由于乘法只是重复添加,因此您可以使用以下(伪)代码执行此操作:
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
是否为正数(如果它为零,则不会运行)。< / p>