我需要用帮助行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));
答案 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
,但两种情况都使用递归调用。