Update Fibonacci solution, test to focus on arrays
Previous Fibonacci solution didn't use arrays, and since this is an array-heavy section, it seemed better to have that be the method here. Also, it accounts for entering 0 as an argument without having to add any extra code, which takes care of some currently open issues. Issues #192 and #236 are about the same thing. I added a test for that as well.
This commit is contained in:
parent
3e530e3f61
commit
3256f980b0
|
@ -1,14 +1,10 @@
|
|||
const fibonacci = function (count) {
|
||||
if (count < 0) return "OOPS";
|
||||
if (count === 0) return 0;
|
||||
let a = 0;
|
||||
let b = 1;
|
||||
for (let i = 1; i < count; i++) {
|
||||
const temp = b;
|
||||
b = a + b;
|
||||
a = temp;
|
||||
}
|
||||
return b;
|
||||
const fibonacci = function(count) {
|
||||
if (count < 0) return "OOPS"
|
||||
const fibPart = [0, 1];
|
||||
for (let index = 1; index < count; index++) {
|
||||
fibPart.push(fibPart[index] + fibPart[index -1]);
|
||||
}
|
||||
return fibPart[count];
|
||||
};
|
||||
|
||||
module.exports = fibonacci;
|
||||
|
|
|
@ -16,6 +16,9 @@ describe('fibonacci', () => {
|
|||
test('25th fibonacci number is 75025', () => {
|
||||
expect(fibonacci(25)).toBe(75025);
|
||||
});
|
||||
test('0th fibonacci number is o', () => {
|
||||
expect(fibonacci(0)).toBe(0);
|
||||
});
|
||||
test("doesn't accept negatives", () => {
|
||||
expect(fibonacci(-25)).toBe('OOPS');
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue