Javascript 我怎样才能使权力的方法?

Javascript 我怎样才能使权力的方法?,javascript,Javascript,我要做功率法 我做了这个: var x=2,n=3,i; 对于(i=1;i{ 设结果=1; for(设i=0;i{ 设结果=1; for(设i=0;i

我要做功率法 我做了这个:

var x=2,n=3,i;
对于(i=1;i尝试递归:

const power = ( base, exponent ) => {
    if( exponent === 0 ) return 1; 
    else return base * power( base, exponent - 1 );
};
或者尝试正常的for循环:

const power = ( base, exponent ) => {
    let result = 1;
    for( let i = 0; i < exponent; i++ )
        result *= base;
    return result;
};
const power=(基数、指数)=>{
设结果=1;
for(设i=0;i<指数;i++)
结果*=基数;
返回结果;
};
你的程序不工作的原因是它试图为
n
步数计算
x=x^2
。因此,计算是
2^2=4^2=16
。相反,上面的代码有一个
结果
变量,它将
乘以
指数
的次数

尝试递归:

const power = ( base, exponent ) => {
    if( exponent === 0 ) return 1; 
    else return base * power( base, exponent - 1 );
};
或者尝试正常的for循环:

const power = ( base, exponent ) => {
    let result = 1;
    for( let i = 0; i < exponent; i++ )
        result *= base;
    return result;
};
const power=(基数、指数)=>{
设结果=1;
for(设i=0;i<指数;i++)
结果*=基数;
返回结果;
};

你的程序不工作的原因是它试图为
n
步数计算
x=x^2
。因此,计算是
2^2=4^2=16
。相反,上面的代码有一个
结果
变量,它将
乘以
指数
的次数

此函数不计算幂,因为它将中间结果平方。您应该使用一个单独的变量,如下所示:

var x= 2 ,n= 3, i;
var y = x;
for(i=1;i<n;i++){
    x *= y;
}
console.log(x);
var x=2,n=3,i;
变量y=x;

对于(i=1;i此函数不计算幂,因为它将中间结果平方。您应该使用以下单独变量:

var x= 2 ,n= 3, i;
var y = x;
for(i=1;i<n;i++){
    x *= y;
}
console.log(x);
var x=2,n=3,i;
变量y=x;

对于(i=1;i您可以使用内置的方法
Math.pow(number,power)


console.log(Math.pow(2,10));
您可以使用内置方法
Math.pow(number,power)


console.log(Math.pow(2,10));
它给出了什么结果?for循环中的
i
应该从
2
开始,我希望您知道有
Math.pow()
?您正在做
(2*2)*(2*2)
,而不是
2*2*2
。用笔和纸仔细检查会很快发现这一点。结果如何?for循环中的
i
应该从
2
开始,我希望你知道有
Math.pow()
?你正在做
(2*2)*(2*2)
,而不是
2*2*2
。用笔和纸来检查这一点会很快发现。他试图自己使用一些东西(可能是为了理解)。我认为你的否决票是不成熟的:)你可能只是发表了评论。这不是手头的问题。他试图自己使用一些东西(可能是为了理解).我认为你的否决票是不成熟的:)你可能刚刚发表了评论。这与眼前的问题无关。“或者尝试正常的for循环”-OP的代码已经有了正常的for循环。想解释一下他们的错误吗?“或者尝试正常的for循环”-OP的代码已经有了正常的for循环。想解释一下他们的错吗?这充其量是不完整的。功率(x,-3)
怎么样
pow(x,0.5)
?@georg:OP要求的是他的代码的解,而不是计算两个浮点数的幂的一般解。扩展负整数指数的代码很容易(计算
-n
的幂并返回倒数)。对于分数值,没有简单的解决方案,但这不是这里的问题。在这种情况下,你应该使用前面提到的
math.pow()
。即使是自然力(尽管没有人提到),这仍然是一个懒惰的、不完整的答案。请考虑改进它。”格奥尔:是的,这不是最好的解决办法。这是对给定代码的更正。这就是全部。二进制算法应该快得多,尤其是对于
n
的大值。但这也不是问题所在。这充其量是不完整的。功率(x,-3)
怎么样
pow(x,0.5)
?@georg:OP要求的是他的代码的解,而不是计算两个浮点数的幂的一般解。扩展负整数指数的代码很容易(计算
-n
的幂并返回倒数)。对于分数值,没有简单的解决方案,但这不是这里的问题。在这种情况下,你应该使用前面提到的
math.pow()
。即使是自然力(尽管没有人提到),这仍然是一个懒惰的、不完整的答案。请考虑改进它。”格奥尔:是的,这不是最好的解决办法。这是对给定代码的更正。这就是全部。二进制算法应该快得多,尤其是对于
n
的大值。但这也不是问题所在。