递归函数指数函数

时间:2016-02-01 22:30:01

标签: javascript function recursion taylor-series

我需要用帮助行Taylor实现递归函数指数函数(e ^ x): e ^ x = 1 + x + x2 / 2! + x3 / 3! + ... 但我无法理解我做错了什么 我有下一个代码:

function fact(n){
    return n * fact(n - 1);
}

function myPow(x, n){
    return x * myPow(x, n - 1);
}

function expon(x ,n){
    if(n == 1){
        return expon(x, n - 1) * x;
    }
    else{
        return expon(x, n - 1) + (myPow(x, n)/fact(n));
    }

}

console.log(expon(1, 10));

3 个答案:

答案 0 :(得分:1)

你的阶乘函数没有基本情况。

{{1}}

{{1}}需要进行类似的更改。虽然权力很有趣,但我认为如果n == 0则返回1。

答案 1 :(得分:0)

您的代码应如下所示:

function fact(n){
  if (n == 1)
    return 1;
  return n * fact(n - 1);
}

function myPow(x, n){
  if(n == 1)
    return n;
  return x * myPow(x, n - 1);
}

function expon(x ,n){
  if(n == 1){
    return 1;
  }
  else{
    return expon(x, n - 1) + (myPow(x, n)/fact(n));
  }

console.log(expon(1, 10));

答案 2 :(得分:0)

这看起来像是一项任务,所以我不会调试你的代码,但会给你一些提示。

你好像不明白递归到底是怎么结束的。

您必须提供一个简单的情况,您可以使用非递归调用返回值。

有时你不会写任何if(坏!),有时会有if,但两种情况都使用递归调用。