javascript - 为什么函数变量返回错误的计算?
问题描述
我的代码的准确性存在问题。
我做了一个函数来计算斐波那契数列:
function fibonacciseries(max_number, p, n) {
if(p === undefined) { p = 0;}
if(n === undefined) { n = 1;}
if(n > max_number) { return 0; }
console.log(n);
return fibonacciseries(max_number, n, n + p)
}
fibonacciseries(3)
但是当我运行这段代码时,console.log(n);
显示:
1
1
2
3
我认为结果应该是1 1 2
,所以我真的不明白为什么会发生这样的事情。运行fibonacciseries(4)
&fibonacciseries(5)
都可以,那么在 的情况下有什么问题fibonacciseries(3)
?我应该如何解决这个问题?
解决方案
检查n>=max_number
不n>max_number
。试试下面的更新代码
function fibonacciseries(max_number, p, n) {
if(p === undefined) { p = 0;}
if(n === undefined) { n = 1;}
if(n >= max_number) { return 0; }
console.log(n);
return fibonacciseries(max_number, n, n + p)
}
fibonacciseries(3)
推荐阅读
- xpath - 如何使用xpath在两个h标签之间选择包含一些文本的元素
- python - 如何使用 seaborn 绘制条形图?
- flutter - 如何检查 Dart List 是否包含某个对象实例?
- java - 检查验证并从编辑文本传递值以移动活动
- amazon-s3 - 在尝试将文件上传到 S3 时,通过 amplify CLI for Android 项目导入 S3 存储会引发 403 未经身份验证的错误
- r - R ggplot 基于条件的垂直线,但在 facet_grid 命令之后?
- powershell - powershell 计划作业无法运行
- reactjs - 如何在本机反应中访问其他文件夹中的资产?
- python - 如何在不关闭python窗口的情况下从一点画线并更新它
- python - 使用 python 在 JSON 有效负载中传递字符串