Logic 如何在不使用乘法算子的情况下生成两个正数相乘的递归函数

Logic 如何在不使用乘法算子的情况下生成两个正数相乘的递归函数,logic,Logic,有人问我这个问题。我搞不懂不使用乘法运算符怎么能把两个数相乘?请分享你的想法。太简单了。请参阅此代码: int multiplication(int a, int b){ if(b==1|| b==0) return a; else return a+multiplication(a,--b); } 我还没有测试过。分享一下你的想法。假设你所乘的项是非负整数,你甚至不需要完全加法,只需要一个后继函数(即,可以加一个)。那是因为 a*b与将b批a a+b与

有人问我这个问题。我搞不懂不使用乘法运算符怎么能把两个数相乘?请分享你的想法。

太简单了。请参阅此代码:

int multiplication(int a, int b){
   if(b==1|| b==0) 
      return a; 
   else 
   return a+multiplication(a,--b); 
}

我还没有测试过。分享一下你的想法。

假设你所乘的项是非负整数,你甚至不需要完全加法,只需要一个后继函数(即,可以加一个)。那是因为

  • a*b
    将b批a
  • a+b
    将1添加到a,b倍
因此,您可以编程
a*b
,使用如下嵌套循环:

answer = 0
for iMultiply from 1 to b
   for iAdd from 1 to a
      answer++
   next iAdd
next iMultiply
return answer