Refactor algorithms structure.

This commit is contained in:
Oleksii Trekhleb
2018-04-02 08:45:50 +03:00
parent 6e4d7a1750
commit f3503f1d5e
4 changed files with 2 additions and 1 deletions

View File

@ -0,0 +1,26 @@
// Calculate fibonacci number at specific position using Dynamic Programming approach.
export default function fibonacci(numberPosition) {
if (numberPosition === 1) {
return 1;
}
let iterationsCounter = numberPosition - 1;
// Calculated fibonacci number.
let fib = null;
// Previous fibonacci number.
let fibPrev = 1;
// Before previous fibonacci number.
let fibPrevPrev = 0;
while (iterationsCounter) {
// Calculate current value using two previous ones.
fib = fibPrev + fibPrevPrev;
// Shift previous values.
fibPrevPrev = fibPrev;
fibPrev = fib;
iterationsCounter -= 1;
}
return fib;
}