Merge pull request #317 from kriadmin/master
[FEATURE] Add two snippets fibsTillNum and fibonacciTillNum
This commit is contained in:
11
snippets/fibonacciCountUntilNum.md
Normal file
11
snippets/fibonacciCountUntilNum.md
Normal file
@ -0,0 +1,11 @@
|
||||
### fibonacciCountUntilNum
|
||||
|
||||
Returns the number of fibonnacci numbers up to `num`(`0` and `num` inclusive).
|
||||
|
||||
Use a mathematical formula to calculate the number of fibonacci numbers until `num`.
|
||||
|
||||
```js
|
||||
const fibonacciCountUntilNum = num =>
|
||||
Math.ceil(Math.log(num * Math.sqrt(5) + 1/2) / Math.log((Math.sqrt(5)+1)/2));
|
||||
// fibonacciCountUntilNum(10) -> 7
|
||||
```
|
||||
15
snippets/fibonacciUntilNum.md
Normal file
15
snippets/fibonacciUntilNum.md
Normal file
@ -0,0 +1,15 @@
|
||||
### fibonacciUntilNum
|
||||
|
||||
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.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), []);
|
||||
}
|
||||
// fibonacciUntilNum(15) -> [0,1,1,2,3,5,8,13]
|
||||
```
|
||||
Reference in New Issue
Block a user