From 816c2749015c93c44e1746dfedef4b42e79328e4 Mon Sep 17 00:00:00 2001 From: Gary Miller Date: Sat, 14 Oct 2023 00:53:46 -0400 Subject: [PATCH] Create FibonacciMemoization.c --- src/c/FibonacciMemoization.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/c/FibonacciMemoization.c diff --git a/src/c/FibonacciMemoization.c b/src/c/FibonacciMemoization.c new file mode 100644 index 00000000..b505e380 --- /dev/null +++ b/src/c/FibonacciMemoization.c @@ -0,0 +1,29 @@ +#include + +#define MAX_N 100 // Define the maximum number for which you want to calculate Fibonacci + +int memo[MAX_N]; // Memoization table to store computed values + +int fibonacci_memoization(int number) { + if (number <= 1) { + return number; + } + if (memo[number] != -1) { + return memo[number]; + } + + memo[number] = fibonacci_memoization(number - 1) + fibonacci_memoization(number - 2); + return memo[number]; +} + +int main(void) { + int test_nbr = 12; + + // Initialize the memoization table with -1 (uncomputed) + for (int i = 0; i < MAX_N; i++) { + memo[i] = -1; + } + + printf("memoization: %d\n", fibonacci_memoization(test_nbr)); + return 0; +}