add alternative fibonacci while loop implementation
authorJérôme Benoit <jerome.benoit@sap.com>
Sun, 23 Jul 2023 14:20:07 +0000 (16:20 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Sun, 23 Jul 2023 14:20:07 +0000 (16:20 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
fibonacci.js

index 75476bf93ca9dfb853ebede4f09beec5b061c7e6..a62f4711fc75adee803df9991769f832ff21d8b5 100644 (file)
@@ -16,6 +16,22 @@ function fibonacciLoop (num) {
   return fib[num]
 }
 
+/**
+ *
+ * @param num
+ * @returns
+ */
+function fibonacciLoopWhile (num) {
+  let current = 1
+  let previous = 0
+  while (--num) {
+    const temp = current
+    current += previous
+    previous = temp
+  }
+  return current
+}
+
 /**
  * @param num
  * @returns
@@ -46,6 +62,9 @@ Benchmark.suite(
   Benchmark.add('fibonacciLoop', () => {
     fibonacciLoop(number)
   }),
+  Benchmark.add('fibonacciLoopWhile', () => {
+    fibonacciLoopWhile(number)
+  }),
   Benchmark.add('fibonacciRecursion', () => {
     fibonacciRecursion(number)
   }),