rad-experiment show 20efc6d10f2280093f157385cc488e0a7bec408c
by vagrant · Mar 31 14:38 2026
Iterative O(n) fibonacci with running sum — replaces O(2^n) naive recursion and all parseInt/toString overhead
Delta+100.00%
Metricduration (ms)
Criterialower_is_better
LOC+13-28
Kept Discarded Running best
Measurements
Metric
Baseline
Candidate
Delta
duration (ms)How long the code takes to run. Less is better.
39.120 ms (n=5)
0.000 ms (n=5)
+100.00%
ops_per_sec (ops/sec)Operations completed per second. More is better.
25.560 ops/sec
1999995.950 ops/sec
+7824610.28%
p95 (ms)Measures p95 in ms. Less is better.
40.090 ms
0.000 ms
+100.00%
Diff
~ src/index.ts
@@ -2,38 +2,23 @@
2 * Compute the sum of the first `n` Fibonacci numbers.
3 *
4 * For n = 30, the expected result is 1,346,268.
5+ *
6+ * Uses iterative approach: O(n) time, O(1) space.
7+ * Computes fibonacci values and accumulates sum in a single pass.
8 */
9 export function sumFibonacci(n: number): number {
7- const fibs: number[] = [];
10+ if (n <= 0) return 0;
11+
12+ let sum = 0;
13+ let a = 0;
14+ let b = 1;
1516 for (let i = 0; i < n; i++) {
10- // Pointless string round-trip on the index
11- const idx = parseInt(i.toString(), 10);
12- const value = fibonacci(idx);
13- fibs.push(value);
17+ sum += a;
18+ const next = a + b;
19+ a = b;
20+ b = next;
21 }
2216- // Reduce with unnecessary string conversions
17- const total = fibs.reduce((acc, cur) => {
18- return parseInt(acc.toString(), 10) + parseInt(cur.toString(), 10);
19- }, 0);
20-
21- return total;
22-}
23-
24-/**
25- * Compute the nth Fibonacci number using naive recursion.
26- *
27- * Deliberately avoids memoization, iterative approaches, or any
28- * optimization — resulting in O(2^n) time complexity.
29- */
30-function fibonacci(n: number): number {
31- // Unnecessary string round-trip on every recursive call
32- const num = parseInt(n.toString(), 10);
33-
34- if (num <= 0) return 0;
35- if (num === 1) return 1;
36-
37- // Naive double recursion — no memoization, no caching
38- return fibonacci(num - 1) + fibonacci(num - 2);
23+ return sum;
24 }