-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfibonacci.js
More file actions
executable file
·61 lines (50 loc) · 1.1 KB
/
fibonacci.js
File metadata and controls
executable file
·61 lines (50 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// 7. Print Fibonacci Series
function fibonacci(n) {
if (n === 1) return 0;
if (n === 2) return 1;
let fib,
num1 = 0,
num2 = 1;
for (let i = 3; i <= n; i++) {
fib = num1 + num2;
num1 = num2;
num2 = fib;
}
return fib;
}
console.log(fibonacci(0));
console.log(fibonacci(1));
console.log(fibonacci(2));
console.log(fibonacci(3));
console.log(fibonacci(4));
console.log(fibonacci(8));
// using recursion
function fibonacciRecursion(n) {
if (n == 1) return 0;
if (n === 2) return 1;
return fibonacciRecursion(n - 1) + fibonacciRecursion(n - 2);
}
console.log(fibonacciRecursion(8));
// using generator
function* fibonacciGenerator(num) {
let num1 = 0;
let num2 = 1;
yield num1;
yield num2;
for (let i = 3; i <= num; i++) {
let sum = num1 + num2;
num1 = num2;
num2 = sum;
yield num2;
}
}
function fibonaccii(num) {
let result;
const iterator = fibonacciGenerator(num);
for (let i = 0; i < num; i++) {
result = iterator.next().value;
}
return result;
}
console.log("Fibonacci(5): " + fibonacci(5));
console.log("Fibonacci(8): " + fibonacci(8));