fibonacci

HackerRank

by trentHarlem

CSS

body {
 background-color: dodgerblue;
 color: whitesmoke;
  font: 20px system-ui;
}

JavaScript

function sumFibs(num) {
  let pre = 0;
  let cur = 1;
  let result = 0;
  while (cur <= num) {
   /*  if (cur % 2 !== 0) {
      result += cur;
    } */
    cur += pre;
    pre = cur - pre;
  }
  return result;
}
sumFibs(10)



/* const fib = n => new Array(n = n + 1).fill(0)
//const fibo = n => (n).toString().split(' ').map((n=n-n,b=n+1)=>a,b)
const fibo = n => Array.from([n]).map(n=> ([let a=n-n,b=n-n+1]))
 */

//.reduce((acc, cur, i, arr) => acc.length<arr[0]?acc+i:n, [])

//acc.length<arr?acc.push(cur):acc.push(acc+cur),[])



//.reduce((a,c,i,arr) => i<n?a+c:a+1,[])
//.      a=n-n,b=a+1,c=a+b return 
// (c=a+b))

//console.log(fibo(10))
  //console.log(a,i,arr)

//////////////
 
/* function backwardFibonacci(n) {
  let fib = [];
  for (let i = 0; i < n+1; i++) {
    if (i < 2) {
      fib.push(i)
    }
    if (i >= 2) {
      fib.push(fib[i - 2] + fib[i - 1])
    }
  }
  console.log('fibonacci', fib)
   // create array with the difference in values of fibonacci 10
  console.log('fibonacci-backward', fib.slice().reverse().splice(2))
  return fib.slice().reverse().map((a,i,arr) => a-arr[i+1])
  //return fib.slice().reverse().map((a,i,arr) => a-arr[i+1]).slice(0,-2)
} */
// 

//const expected = [21, 13, 8, 5, 3, 2, 1, 0]
//const expectedMath = [55-34,34-21,21-13,13-8,8-5,5-3,3-2,1-1,1-0]

//console.log('expectedMath',expectedMath)
// the backward fibonacci sequence is the same as the forward sequence reversed minus 2 indeces 

///////// original working solution
function fibonacci(n) {
  let fib = [];
  for (let i = 0; i < n + 1; i++) {
    if (i < 2) {
      fib.push(i)
    }
    if (i >= 2) {
      fib.push(fib[i - 2] + fib[i - 1])
    }
  }
  console.log('fibonacci', fib)
  return fib[n]
}
console.log(fibonacci(10))

//console.log(fib(10))
//console.log(backwardFibonacci(10))

/* function backwardFibon(n) {
  let fib = [];
  //let counter = 1;
  for (let i = 0; i < n+1; i++) {
    if (i < 2 ) {
      fib.push(i)
      //counter++
  console.log(i,fib[i],fib)
...