如何使用乘法函数来执行指数函数?

How to use a multiply function to execute an exponent function?

所以我有一个任务是创建一个添加函数。然后创建一个不使用运算符并使用 add 函数的 multiply 函数。现在我需要使用这个乘法函数来创建一个幂(指数)函数。这是我目前的尝试:

function add(a, b){
   return a + b;
}
// console.log(add(6, 4))
    
    
function multiply(first, second){
    let i = 0;
    let answer = 0;
    while(i < second){
        answer += add(first, 0);
        i += 1;
    }
    return answer;

}
// let m = multiply(10, 4)
// console.log(m);
    
    
function power(x, n){
    let i = 0;
    let answer = multiply(x, x);
    let total = 1;
    while(i < n){
        total += multiply(x, answer)
        i += 1;
     }
     return total;
}
let p = power(2, 4)
console.log(p)

我似乎被困在这里,因为我所做的任何更改都没有帮助。关于这个有什么建议吗?

这应该是正确的函数:

function power(x, n){
    let i = 1;
    let total = x;
    while(i < n){
        total = multiply(total,x)
        i += 1;
     }
     return total;
}

你是把每次乘法的结果相加,其实你只想得到最后的乘法结果。另外,索引是错误的。

我认为你在那里所做的是将 n 乘以 x^3,然后将其加 1。 因为总和等于 1。而答案等于 x^2,则乘法 (x,answer) 将得到 x^3。您在每次迭代中将 x^3 添加到总计中,因此总计将为您提供 1+(n*x^3)

我建议你试试这个:

function power(x, n){
    let i = 0;
    let answer = 1;
    while(i < n){
        answer = multiply(x, answer)
        i += 1;
     }
     return answer;
}