From cda0903ae35d1f0f53299fe90882898312e19420 Mon Sep 17 00:00:00 2001 From: tbouri Date: Sun, 31 Aug 2025 15:58:09 +0300 Subject: [PATCH 1/5] Fix the issue in fib file --- src/fib.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fib.ts b/src/fib.ts index 8dc8ddd..4475aa6 100644 --- a/src/fib.ts +++ b/src/fib.ts @@ -1,12 +1,12 @@ // util function that computes the fibonacci numbers -module.exports = function fibonacci(n) { +export function fibonacci(n: number): number { if (n < 0) { return -1; - } else if (n == 0) { + } else if (n === 0) { return 0; - } else if (n == 1) { + } else if (n === 1) { return 1; } return fibonacci(n - 1) + fibonacci(n - 2); -}; +} From d85eb1d1bb8e75b44d377a59a60f71c82dfe45c0 Mon Sep 17 00:00:00 2001 From: tbouri Date: Sun, 31 Aug 2025 16:17:25 +0300 Subject: [PATCH 2/5] Fix fibRoute.ts file --- src/fibRoute.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/fibRoute.ts b/src/fibRoute.ts index 2d41ca5..19c7600 100644 --- a/src/fibRoute.ts +++ b/src/fibRoute.ts @@ -1,6 +1,5 @@ // Endpoint for querying the fibonacci numbers - -const fibonacci = require("./fib"); +import { fibonacci } from "./fib"; export default (req, res) => { const { num } = req.params; From 800541850c85fda280533d55a98858ad2d5e4416 Mon Sep 17 00:00:00 2001 From: tbouri Date: Sun, 31 Aug 2025 22:39:51 +0300 Subject: [PATCH 3/5] Fix on code for fib.ts file --- src/fib.ts | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/fib.ts b/src/fib.ts index 4475aa6..3d68b3e 100644 --- a/src/fib.ts +++ b/src/fib.ts @@ -1,12 +1,15 @@ -// util function that computes the fibonacci numbers +// src/fib.ts export function fibonacci(n: number): number { - if (n < 0) { - return -1; - } else if (n === 0) { - return 0; - } else if (n === 1) { - return 1; - } + if (n < 0) return -1; + if (n === 0) return 0; + if (n === 1) return 1; - return fibonacci(n - 1) + fibonacci(n - 2); -} + let a = 0; + let b = 1; + for (let i = 2; i <= n; i++) { + const next = a + b; + a = b; + b = next; + } + return b; +} \ No newline at end of file From d92c249479c0b30cb8ec4d2ffad63bd2e1035469 Mon Sep 17 00:00:00 2001 From: tbouri Date: Sun, 31 Aug 2025 22:49:51 +0300 Subject: [PATCH 4/5] Fixed error in fibRoute.ts --- src/fibRoute.ts | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/fibRoute.ts b/src/fibRoute.ts index 19c7600..5e7510e 100644 --- a/src/fibRoute.ts +++ b/src/fibRoute.ts @@ -1,15 +1,26 @@ // Endpoint for querying the fibonacci numbers +import type { Request, Response } from "express"; import { fibonacci } from "./fib"; -export default (req, res) => { - const { num } = req.params; +export default function fibRoute(req: Request, res: Response): void { + const numParam: string | undefined = req.params?.num; - const fibN = fibonacci(parseInt(num)); - let result = `fibonacci(${num}) is ${fibN}`; + if (typeof numParam !== "string") { + res.status(400).send("Missing route parameter 'num'"); + return; + } - if (fibN < 0) { - result = `fibonacci(${num}) is undefined`; + const n = Number.parseInt(numParam, 10); + if (Number.isNaN(n)) { + res.status(400).send(`Invalid number: "${numParam}"`); + return; } + const fibN = fibonacci(n); + const result = + fibN < 0 + ? `fibonacci(${n}) is undefined` + : `fibonacci(${n}) is ${fibN}`; + res.send(result); -}; +} From 4a2065fd0a08eee50a5d9bca2828a322d82ca11a Mon Sep 17 00:00:00 2001 From: tbouri Date: Sun, 31 Aug 2025 23:22:26 +0300 Subject: [PATCH 5/5] Trying again --- src/fibRoute.ts | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/fibRoute.ts b/src/fibRoute.ts index 5e7510e..19c7600 100644 --- a/src/fibRoute.ts +++ b/src/fibRoute.ts @@ -1,26 +1,15 @@ // Endpoint for querying the fibonacci numbers -import type { Request, Response } from "express"; import { fibonacci } from "./fib"; -export default function fibRoute(req: Request, res: Response): void { - const numParam: string | undefined = req.params?.num; +export default (req, res) => { + const { num } = req.params; - if (typeof numParam !== "string") { - res.status(400).send("Missing route parameter 'num'"); - return; - } + const fibN = fibonacci(parseInt(num)); + let result = `fibonacci(${num}) is ${fibN}`; - const n = Number.parseInt(numParam, 10); - if (Number.isNaN(n)) { - res.status(400).send(`Invalid number: "${numParam}"`); - return; + if (fibN < 0) { + result = `fibonacci(${num}) is undefined`; } - const fibN = fibonacci(n); - const result = - fibN < 0 - ? `fibonacci(${n}) is undefined` - : `fibonacci(${n}) is ${fibN}`; - res.send(result); -} +};