Remove fibonacciUntilNum
This commit is contained in:
@ -1,24 +0,0 @@
|
|||||||
---
|
|
||||||
title: fibonacciUntilNum
|
|
||||||
tags: math,intermediate
|
|
||||||
---
|
|
||||||
|
|
||||||
Generates an array, containing the Fibonacci sequence, up until the nth term.
|
|
||||||
|
|
||||||
Create an empty array of the specific length, initializing the first two values (`0` and `1`).
|
|
||||||
Use `Array.prototype.reduce()` to add values into the array, using the sum of the last two values, except for the first two.
|
|
||||||
Uses a mathematical formula to calculate the length of the array required.
|
|
||||||
|
|
||||||
```js
|
|
||||||
const fibonacciUntilNum = num => {
|
|
||||||
let n = Math.ceil(Math.log(num * Math.sqrt(5) + 1 / 2) / Math.log((Math.sqrt(5) + 1) / 2));
|
|
||||||
return Array.from({ length: n }).reduce(
|
|
||||||
(acc, val, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i),
|
|
||||||
[]
|
|
||||||
);
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
```js
|
|
||||||
fibonacciUntilNum(10); // [ 0, 1, 1, 2, 3, 5, 8 ]
|
|
||||||
```
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
const {fibonacciUntilNum} = require('./_30s.js');
|
|
||||||
|
|
||||||
test('fibonacciUntilNum is a Function', () => {
|
|
||||||
expect(fibonacciUntilNum).toBeInstanceOf(Function);
|
|
||||||
});
|
|
||||||
test('Returns the correct sequence', () => {
|
|
||||||
expect(fibonacciUntilNum(10)).toEqual([0, 1, 1, 2, 3, 5, 8]);
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user