diff options
| author | Carlos Maiolino <[email protected]> | 2025-07-10 22:55:07 +0200 |
|---|---|---|
| committer | Carlos Maiolino <[email protected]> | 2025-07-10 22:56:55 +0200 |
| commit | d98f46ce647846b0aa30b2e16a30fd4e152a1bf5 (patch) | |
| tree | 267474fcc77cf20b428f6f4c7f768ca09f4cfe0e /Algorithms/facttail.c | |
| parent | 869e68986aa8f69af6e7842260a68d1e5c6f796f (diff) | |
Add new code
Signed-off-by: Carlos Maiolino <[email protected]>
Diffstat (limited to 'Algorithms/facttail.c')
| -rw-r--r-- | Algorithms/facttail.c | 37 |
1 files changed, 37 insertions, 0 deletions
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 <stdio.h> + +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; +} + |
