/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   ft_fibnacci.c                                      :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: keanders <marvin@42.fr>                    +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2024/07/23 20:55:04 by keanders          #+#    #+#             */
/*   Updated: 2024/07/23 20:55:06 by keanders         ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */

#include <stdio.h>
// Without memo cache

int	fb(int n)
{
	if (n < 0)
		return (-1);
	if (n <= 1)
	{
		return (n);
	}
	return (fb(n - 1) + fb(n -2));
}
/*

#define MAX_N 100

int	g_memo[MAX_N + 1]; // +1 for base case n=0

int	fb(int n)
{
	int	result;
	if (n < 0)
		return (-1);
	if (n <= 1)
	{
		return (n);
	}
	if (g_memo[n] != 0) // if result is already memoized
	{
		return (g_memo[n]);
	}
	result = fb(n - 1) + fb(n - 2);
	g_memo[n] = result; // store result in memo array
	return (result);
}
*/

int	main(void)
{
	int	n;

	n = -1;
	printf("The %dth Fibo number is: %d\n", n, fb(n));
	n = -3;
	printf("The %dth Fibo number is: %d\n", n, fb(n));
	n = 44;
	printf("The %dth Fibo number is: %d\n", n, fb(n));
	n = 45;
	printf("The %dth Fibo number is: %d\n", n, fb(n));
	n = 46;
	printf("The %dth Fibo number is: %d\n", n, fb(n));
	n = 47;
	printf("The %dth Fibo number is: %d\n", n, fb(n));
	n = 48;
	printf("The %dth Fibo number is: %d\n", n, fb(n));
	n = 49;
	printf("The %dth Fibo number is: %d\n", n, fb(n));
	return (0);
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: