diff --git a/Project-Euler/Problem025.js b/Project-Euler/Problem025.js index 236ef90e6..3934e23c9 100644 --- a/Project-Euler/Problem025.js +++ b/Project-Euler/Problem025.js @@ -4,11 +4,11 @@ * @see {@link https://projecteuler.net/problem=25} * * The Fibonacci sequence is defined by the recurrence relation: -* +* * Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1. -* +* * Hence the first 12 terms will be: -* +* * F1 = 1 * F2 = 1 * F3 = 2 @@ -28,18 +28,18 @@ // brute force method -function fibonacciIndex(t = 1000) { - let digits = 10n**BigInt(t-1), - fib0 = BigInt(0), - fib1 = BigInt(1), - index = 1 - while (fib1 < digits) { // using this to compare number of digits instead of .toString() significantly improved run time +function fibonacciIndex (t = 1000) { + const digits = 10n ** BigInt(t - 1) + let fib0 = BigInt(0) + let fib1 = BigInt(1) + let index = 1 + while (fib1 < digits) { // using this to compare number of digits instead of .toString() significantly improved run time const tempfib = fib1 fib1 = fib1 + fib0 fib0 = tempfib index += 1 } - return(index) + return (index) } export { fibonacciIndex } diff --git a/Project-Euler/test/Problem025.test.js b/Project-Euler/test/Problem025.test.js index e5b0627e1..cea11e947 100644 --- a/Project-Euler/test/Problem025.test.js +++ b/Project-Euler/test/Problem025.test.js @@ -1,27 +1,27 @@ import { fibonacciIndex } from '../Problem025' -describe ('Check Problem 25 - 1000 digit Fibonnaci number', () => { - it('First term of the Fibonnaci sequence containing 3 digits', () => { - expect(fibonacciIndex(3)).toBe(12) - }) +describe('Check Problem 25 - 1000 digit Fibonnaci number', () => { + it('First term of the Fibonnaci sequence containing 3 digits', () => { + expect(fibonacciIndex(3)).toBe(12) + }) - it('First term of the Fibonnaci sequence containing 10 digits', () => { - expect(fibonacciIndex(10)).toBe(45) - }) + it('First term of the Fibonnaci sequence containing 10 digits', () => { + expect(fibonacciIndex(10)).toBe(45) + }) - it('First term of the Fibonnaci sequence containing 50 digits', () => { - expect(fibonacciIndex(50)).toBe(237) - }) + it('First term of the Fibonnaci sequence containing 50 digits', () => { + expect(fibonacciIndex(50)).toBe(237) + }) - it('First term of the Fibonnaci sequence containing 100 digits', () => { - expect(fibonacciIndex(100)).toBe(476) - }) + it('First term of the Fibonnaci sequence containing 100 digits', () => { + expect(fibonacciIndex(100)).toBe(476) + }) - it('First term of the Fibonnaci sequence containing 1000 digits', () => { - expect(fibonacciIndex(1000)).toBe(4782) - }) - - it('First term of the Fibonnaci sequence containing 10000 digits', () => { - expect(fibonacciIndex(10000)).toBe(47847) - }) + it('First term of the Fibonnaci sequence containing 1000 digits', () => { + expect(fibonacciIndex(1000)).toBe(4782) + }) + + it('First term of the Fibonnaci sequence containing 10000 digits', () => { + expect(fibonacciIndex(10000)).toBe(47847) + }) })