如何使用乘法函数来执行指数函数?
Posted
技术标签:
【中文标题】如何使用乘法函数来执行指数函数?【英文标题】:How to use a multiply function to execute an exponent function? 【发布时间】:2020-11-02 03:32:53 【问题描述】:所以我有一个任务来创建一个添加函数。然后创建一个不使用运算符并使用 add 函数的乘法函数。现在我需要使用这个乘法函数来创建一个幂(指数)函数。这是我迄今为止的尝试:
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)
我似乎被困在这里,因为我所做的任何更改都没有帮助。关于这个有什么建议吗?
【问题讨论】:
“我所做的任何更改都没有帮助”是什么意思? 正如我目前所做的所有更改都没有达到预期的结果。 说真的,“我到目前为止所做的所有更改都没有达到预期的结果”是什么意思?我正在寻找确切的更改、什么不起作用、你是怎么知道的、什么错误、你想要什么等等。对问题的模糊描述并不是很有帮助。 【参考方案1】:我认为您在那里所做的是将 n 与 x^3 相乘,然后将其加 1。 因为总计等于 1。并且答案等于 x^2,所以乘法(x,答案)会给你 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;
【讨论】:
啊!非常感谢,在这里看到它看起来比我尝试做的要简单得多。我盯着电脑太久了……【参考方案2】:这应该是正确的函数:
function power(x, n)
let i = 1;
let total = x;
while(i < n)
total = multiply(total,x)
i += 1;
return total;
您将每个乘法的结果相加,实际上您只想获得最终的乘法结果。另外,索引是错误的。
【讨论】:
【参考方案3】:快速修复
function power(x, n)
var m = x; // multiplier
while(1 < n)
x = multiply(x, m);
n++;
return x;
【讨论】:
以上是关于如何使用乘法函数来执行指数函数?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用内部函数 C++ 将 3 个加法和 1 个乘法转换为矢量化 SIMD