首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归函数指数函数

递归函数指数函数
EN

Stack Overflow用户
提问于 2016-02-01 22:30:00
回答 4查看 2.7K关注 0票数 0

我需要用帮助行Taylor实现递归函数指数函数: e^x =1+x+ x2/2!+ x3/3!+.但是我不明白我做错了什么--我有下一个代码:

代码语言:javascript
复制
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));
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-01 22:34:08

您的代码应该如下所示:

代码语言:javascript
复制
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));
票数 0
EN

Stack Overflow用户

发布于 2016-02-01 22:33:25

您的阶乘函数没有大小写。

代码语言:javascript
复制
function fact(n) {
  if (n == 1)
    return 1;
  if (n < 1)
    return 0;
  return n * fact(n - 1);
}

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

票数 1
EN

Stack Overflow用户

发布于 2016-02-01 22:36:11

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

您似乎不明白递归是如何在最后给出结果的。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35141658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档