Advertisement
AviEzerzer

Untitled

Jul 12th, 2020
994
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var isSquare = function (n) {
  2.   return n > 0 && Math.sqrt(n) % 1 === 0;
  3. };
  4.  
  5. function getFib(n) {
  6.   if (n <= 1) return 1;
  7.  
  8.   const validFibbo = isSquare(5 * (n * n) - 4) || isSquare(5 * (n * n) + 4);
  9.  
  10.   if (!validFibbo) {
  11.     return null;
  12.   }
  13.  
  14.   let fib = [0, 1, n + 1];
  15.  
  16.   for (let i = 2; i <= n + 1; i++) {
  17.     fib[i] = fib[i - 1] + fib[i - 2];
  18.     if (fib[i] > n) {
  19.       // check if key > num
  20.       return fib[i];
  21.     }
  22.   }
  23.  
  24.   if (fib[i - 1] < n) {
  25.     // check if key < num
  26.     return fib[i - 1] + n;
  27.   }
  28.   if ((fib[i] = n - 1)) {
  29.     // check if key = num
  30.     return fib[i - 1] + fib[i - 2];
  31.   }
  32.   if ((fib[i - 1] = 1)) {
  33.     // check if num = 1
  34.     return n + n;
  35.   }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement