From d98f46ce647846b0aa30b2e16a30fd4e152a1bf5 Mon Sep 17 00:00:00 2001 From: Carlos Maiolino Date: Thu, 10 Jul 2025 22:55:07 +0200 Subject: Add new code Signed-off-by: Carlos Maiolino --- Algorithms/facttail.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Algorithms/facttail.c (limited to 'Algorithms/facttail.c') diff --git a/Algorithms/facttail.c b/Algorithms/facttail.c new file mode 100644 index 0000000..c150a05 --- /dev/null +++ b/Algorithms/facttail.c @@ -0,0 +1,37 @@ +/* + * Tail recursion + * + * Implements a factorial function using tail recursion instead of regular + * recursion + */ + +#include + +int facttail(int n, int cur) { + + if (n < 0) + return 0; + + switch (n){ + case (0): + return 1; + break; + case (1): + return cur; + break; + default: + facttail(n - 1, cur * n); + } +} + +int main(void) { + int a = 3; + int b = 1; + int res = 0; + + res = facttail(a, 1); + + printf("Res: %d\n", res); + return 0; +} + -- cgit v1.2.3