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

问题描述

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

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;
}
,

快速修复

function power(x,n){
        var m = x; // multiplier
        while(1 < n){
            x = multiply(x,m);
            n++;
        }
        return x;
    }