# Print fibonacci number in javascript , here is my code , tel me it's right or wrong

``````//fibonacciNumbers example = [0,1,1,2,3,5,8,13,21,34,55....]

var fibonacciNumbers = [];

var numb1 = 0;
var numb2 = 1;
var sum;

do{
console.log(numb1);   //0       //1         //1          // 2         // 3                ......
sum = numb1 + numb2; // 0+1     //1+1=2     //1+2 =3     // 2+3 =5    // 3 + 5 = 8        ......
numb1 = numb2;       // 0 = 1   //1 = 1     //1 = 2      // 2 = 3     // 3 = 5            ......
numb2 = sum;         // 1 = 1   //1+1=2     // 1+2 =3    // 2+3 =5    // 3 + 5 = 8        ......
}while(numb1<=20);

for(i=0; i<=5; i++){

fibonacciNumbers.push(numb1);
sum = numb1 + numb2;
numb1 = numb2;
numb2 = sum;

}

console.log(fibonacciNumbers);
``````

here is my console log result in node (vs code editor)

``````0
1
1
2
3
5
8
13
[ 21, 34, 55, 89, 144, 233 ]
``````

It is correct but what will be the length of fibonacci array. Is it n number i.e. upto infinity or specific number given by us/user i.e. 20 or 200 or more.

<20 <of first one, second one is only print 5 number , but it exicuted 6 time

Actually this logic and my logic both will work perfectly upto 78 but from 79 it gives us wrong answer so I’m trying to solve it. You can also try to solve this problem and let me know if you solve this problem.

fibonacci number

``````Here its example
it's calculation of last two number -fibonacci number
0,1,1,2,3,5,8,...

if you want start with 0 or second number is 1 ,

// first two value is  your given value as it as

first is 0  then second is 1,

next is 0+1 =1,
next is 1+1=2,
next is 1+2=3,
next is 2+3=5,
//result
[0,1,1,2,3,5,8....]

*****************************
do not put first number is greater then second -- it will work but , here I explain it.

if you want start with 10 or second number is 1 ,

// first two value is  your given value as it as

first is 10  then second is 1,

next is 10+1=11,
next is 1+11=12,
next is 11+12=23,

//result
[10,1,11,12,23,35...]
``````

**checkout this code live on CodeSandbox . I put 10000 value in first condition , code is working well, no found issue in this code **

using closer function

``````//Closer Function--  function alonge with it's lexical scope bundle together form the close -that is a closer

let result =[], value = 10 ;

function start(){
let x = 0;
function nextvalue(){
let y = 1;
function sum(){
for(let z=0; z<value; z++){
result.push(x);
let z = x+y;
x = y;
y = z;
}
}
sum();
}
nextvalue();
}
start();

console.log(result);

/*complex one*/

let result2 = [];

function startNew(a, value){
let x = a;
return function nextvalue(b){
let y = b;
return function sum(){
for(let z=0; z<value; z++){
result2.push(x);
let z = x+y;
x = y;
y = z;
}
}
}
}

let nextvalue = startNew(0,5);
let sum = nextvalue(1);
sum();

console.log(result2);
``````