在索引 2 之后,我在斐波那契数列中得到 NaN
after index 2 i am getting NaN in fibonacci series
在我的 javascript 代码中,我在索引 2 之后得到 NaN,就像我将 5
作为输入然后我得到 [0,1,NaN,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);
您的代码存在问题:var num3 = a[i - 1] + a[i - 2];
。将其更新为 var num3 = a[i - 2] + a[i - 3];
将修复,因为您以 1 开始计数器索引变量,但数组位置索引以 0 开头。
将您的代码更新为:
let a = [];
let n = prompt("enter a number: ");
if (n >= 1) {
a.push(0);
}
if (n >= 2) {
a.push(1);
}
for (let i = 2; i < n; i++) {
a.push(a[i - 1] + a[i - 2]);
}
console.log(a);
在我的 javascript 代码中,我在索引 2 之后得到 NaN,就像我将 5
作为输入然后我得到 [0,1,NaN,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);
您的代码存在问题:var num3 = a[i - 1] + a[i - 2];
。将其更新为 var num3 = a[i - 2] + a[i - 3];
将修复,因为您以 1 开始计数器索引变量,但数组位置索引以 0 开头。
将您的代码更新为:
let a = [];
let n = prompt("enter a number: ");
if (n >= 1) {
a.push(0);
}
if (n >= 2) {
a.push(1);
}
for (let i = 2; i < n; i++) {
a.push(a[i - 1] + a[i - 2]);
}
console.log(a);