如何解决在索引2之后,我在斐波那契数列中得到NaN
在我的javascript代码中,我在索引2之后得到了NaN,就像如果我以5
作为输入然后得到了[0,1,NaN,NaN]
,但我没有得到为什么我得到这个NaN以及什么它是否表示为答案
var a = [];
var n = prompt("enter a number: ");
for (var i = 1; i <= n; i++) {
if (i === 1) {
a.push(0);
}
if (i === 2) {
a.push(1);
} else if (i > 2) {
var num1 = a[i - 1];
var num2 = a[i - 2];
var num3 = a[i - 1] + a[i - 2];
a.push(num3);
}
}
console.log(a);
解决方法
您必须以i=0
和i<n
开头,并将所有索引都减少约1。
var a=[];
var n=prompt("enter a number: ");
for(var i=0;i<n;i++)
{
if(i===0)
{
a.push(0);
}
if(i===1)
{
a.push(1);
}
else if(i>1){
var num1=a[i-1];
var num2=a[i-2];
var num3=a[i-1]+a[i-2];
a.push(num3);
}
}
console.log(a);
,
数组索引从零开始。
试试这个:
var a = [];
var n=prompt("enter a number: ");
for (var i = 0; i <= n; i++) {
if (i < 2) {
a.push(1);
} else {
var num1 = a[i - 1];
var num2 = a[i - 2];
var num3 = a[i - 1] + a[i - 2];
a.push(num3);
}
}
console.log(a);
,
您的代码存在以下问题:Handler(Looper.getMainLooper()).postDelayed({
// Your Code
},3000)
。将计数器索引变量从1开始,而数组位置索引从0开始,将其更新为var num3 = a[i - 1] + a[i - 2];
即可解决。
将您的代码更新为:
var num3 = a[i - 2] + a[i - 3];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。