Language agnostic 如何仅使用加法运算符和堆栈将两个整数相乘

Language agnostic 如何仅使用加法运算符和堆栈将两个整数相乘,language-agnostic,stack,Language Agnostic,Stack,我的一个朋友向我提出了这个问题,我一直在思考,但我甚至不知道从哪里开始。这个问题是可以解决的 规则:您可以使用add、sub、conditionals、jumps和最多两个堆栈 如果有人有一个解决方案,解释一下就好了 我已经知道一种不用堆栈的解决方法m1和m2是两个数字 count = m1 prod = 0 Branch_equal_zero count,EXIT LOOP: prod = prod + m2 count = count - 1 Branch_not_equal_zero

我的一个朋友向我提出了这个问题,我一直在思考,但我甚至不知道从哪里开始。这个问题是可以解决的

规则:您可以使用add、sub、conditionals、jumps和最多两个堆栈

如果有人有一个解决方案,解释一下就好了

我已经知道一种不用堆栈的解决方法
m1
m2
是两个数字

count = m1
prod = 0

Branch_equal_zero count,EXIT

LOOP:
prod = prod + m2
count = count - 1
Branch_not_equal_zero count,LOOP

EXIT:
return prod   
halt

编辑:具有堆栈的程序将比上面的程序快。我想不出这怎么可能

我觉得你已经解决了。如果您想使用堆栈,那么不要在prod上添加,而是将m2推入堆栈。然后包括另一个循环,该循环弹出并汇总堆栈中的所有元素。其想法是使用堆栈使该程序更快。你的方法会使它更快吗?在我看来,你似乎已经解决了它。如果您想使用堆栈,那么不要在prod上添加,而是将m2推入堆栈。然后包括另一个循环,该循环弹出并汇总堆栈中的所有元素。其想法是使用堆栈使该程序更快。你的方法会使它更快吗?