Update Final 42

This commit is contained in:
lclerel- lclerel-
2026-03-23 14:47:43 +01:00
parent 9e30071258
commit 3b8d303f77
72 changed files with 3268 additions and 12 deletions
Submodule Imperative Programming/C-Algorithmics-Fundamentals deleted from 4d55e3b2c1
@@ -0,0 +1,86 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_iterative_factorial.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/09 10:08:57 by lclerel- #+# #+# */
/* Updated: 2026/03/09 13:07:20 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
/*void ft_putnbr(int nb)
{
char value;
if (nb == -2147483648)
{
write(1, "-2147483648", 11);
return ;
}
if (nb < 0)
{
write(1, "-", 1);
nb = -nb;
}
if (nb > 9)
{
ft_putnbr(nb / 10);
}
value = nb % 10 + '0';
write(1, &value, 1);
}*/
int ft_iterative_factorial(int nb)
{
int res;
res = 1;
if (nb < 0)
return (0);
if (nb == 0 || nb == 1)
return (1);
while (nb > 1)
{
res = res * nb;
nb--;
}
return (res);
}
/*int main(void)
{
int nb;
write(1, "Test avec factoriel de 5:", 25);
write(1, "\n", 1);
nb = ft_iterative_factorial(5);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec factoriel de 10:", 26);
write(1, "\n", 1);
nb = ft_iterative_factorial(10);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec factoriel de 20:", 26);
write(1, "\n", 1);
nb = ft_iterative_factorial(20);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "(20 depasse l'int limit, resultat negatif)", 42);
write(1, "\n", 1);
write(1, "Test avec factoriel de 0:", 25);
write(1, "\n", 1);
nb = ft_iterative_factorial(0);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec aucune factoriel:", 27);
write(1, "\n", 1);
nb = ft_iterative_factorial(-14);
ft_putnbr(nb);
write(1, "\n", 1);
return (0);
}*/
@@ -0,0 +1,77 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_recursive_factorial.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/09 09:57:06 by lclerel- #+# #+# */
/* Updated: 2026/03/09 13:09:08 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
/*void ft_putnbr(int nb)
{
char value;
if (nb == -2147483648)
{
write(1, "-2147483648", 11);
return ;
}
if (nb < 0)
{
write(1, "-", 1);
nb = -nb;
}
if (nb > 9)
{
ft_putnbr(nb / 10);
}
value = nb % 10 + '0';
}*/
int ft_recursive_factorial(int nb)
{
if (nb < 0)
return (0);
if (nb == 0 || nb == 1)
return (1);
return (nb * ft_recursive_factorial(nb -1));
}
/*int main(void)
{
int nb;
write(1, "Test avec factoriel de 5:", 25);
write(1, "\n", 1);
nb = ft_recursive_factorial(5);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec factoriel de 10:", 26);
write(1, "\n", 1);
nb = ft_recursive_factorial(10);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec factoriel de 20:", 26);
write(1, "\n", 1);
nb = ft_recursive_factorial(20);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "(20 depasse l'int limit, resultat negatif)", 42);
write(1, "\n", 1);
write(1, "Test avec factoriel de 0:", 25);
write(1, "\n", 1);
nb = ft_recursive_factorial(0);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec aucune factoriel:", 27);
write(1, "\n", 1);
nb = ft_recursive_factorial(-14);
ft_putnbr(nb);
write(1, "\n", 1);
return (0);
}*/
@@ -0,0 +1,80 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_iterative_power.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/09 10:22:48 by lclerel- #+# #+# */
/* Updated: 2026/03/09 13:09:15 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
/*void ft_putnbr(int nb)
{
char value;
if (nb == -2147483648)
{
write(1, "-2147483648", 11);
return ;
}
if (nb < 0)
{
write(1, "-", 1);
nb = -nb;
}
if (nb > 9)
{
ft_putnbr(nb / 10);
}
value = nb % 10 + '0';
}*/
int ft_iterative_power(int nb, int power)
{
int res;
res = 1;
if (power < 0)
return (0);
if (power == 0)
return (1);
while (power > 0)
{
res = res * nb;
power--;
}
return (res);
}
/*int main(void)
{
int nb;
write(1, "Test avec puissance de 5:", 25);
write(1, "\n", 1);
nb = ft_iterative_power(5, 5);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec puissance de 10:", 26);
write(1, "\n", 1);
nb = ft_iterative_power(10, 10);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec puissance de 20:", 26);
write(1, "\n", 1);
nb = ft_iterative_power(20, 20);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "(20 depasse l'int limit, resultat mis a 0)", 42);
write(1, "\n", 1);
write(1, "Test avec puissance de 0:", 25);
write(1, "\n", 1);
nb = ft_iterative_power(0, 0);
ft_putnbr(nb);
write(1, "\n", 1);
return (0);
}*/
@@ -0,0 +1,72 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_recursive_power.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/09 10:34:20 by lclerel- #+# #+# */
/* Updated: 2026/03/09 13:09:22 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
/*void ft_putnbr(int nb)
{
char value;
if (nb == -2147483648)
{
write(1, "-2147483648", 11);
return ;
}
if (nb < 0)
{
write(1, "-", 1);
nb = -nb;
}
if (nb > 9)
{
ft_putnbr(nb / 10);
}
value = nb % 10 + '0';
}*/
int ft_recursive_power(int nb, int power)
{
if (power < 0)
return (0);
if (power == 0)
return (1);
return (nb * ft_recursive_power(nb, power -1));
}
int main(void)
{
int nb;
write(1, "Test avec puissance de 5:", 25);
write(1, "\n", 1);
nb = ft_recursive_power(5, 5);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec puissance de 10:", 26);
write(1, "\n", 1);
nb = ft_recursive_power(10, 10);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec puissance de 20:", 26);
write(1, "\n", 1);
nb = ft_recursive_power(20, 20);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "(20 depasse l'int limit, resultat mis a 0)", 42);
write(1, "\n", 1);
write(1, "Test avec puissance de 0:", 25);
write(1, "\n", 1);
nb = ft_recursive_power(0, 0);
ft_putnbr(nb);
write(1, "\n", 1);
return (0);
}
@@ -0,0 +1,72 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_fibonacci.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/09 10:48:57 by lclerel- #+# #+# */
/* Updated: 2026/03/09 13:09:29 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
/*void ft_putnbr(int nb)
{
char value;
if (nb == -2147483648)
{
write(1, "-2147483648", 11);
return ;
}
if (nb < 0)
{
write(1, "-", 1);
nb = -nb;
}
if (nb > 9)
{
ft_putnbr(nb / 10);
}
value = nb % 10 + '0';
}*/
int ft_fibonacci(int index)
{
if (index < 0)
return (-1);
if (index == 0)
return (0);
if (index == 1)
return (1);
return (ft_fibonacci(index - 1) + ft_fibonacci(index - 2));
}
/*int main(void)
{
int nb;
write(1, "Test avec index de 5:", 22);
write(1, "\n", 1);
nb = ft_fibonacci(5);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec index de 10:", 23);
write(1, "\n", 1);
nb = ft_fibonacci(10);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec index de -1:", 23);
write(1, "\n", 1);
nb = ft_fibonacci(-1);
ft_putnbr(nb);
write(1, "\n", 1);
write(1, "Test avec index de 30:", 23);
write(1, "\n", 1);
nb = ft_fibonacci(30);
ft_putnbr(nb);
write(1, "\n", 1);
return (0);
}*/
Submodule Imperative Programming/C-Characters-Arithmetics deleted from 2ced9aed8d
@@ -0,0 +1,42 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_putnbr.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/05 13:17:20 by lclerel- #+# #+# */
/* Updated: 2026/03/06 10:25:12 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void ft_putnbr(int nb)
{
char value;
if (nb == -2147483648)
{
write(1, "-2147483648", 11);
return ;
}
if (nb < 0)
{
write(1, "-", 1);
nb = -nb;
}
if (nb > 9)
{
ft_putnbr(nb / 10);
}
value = nb % 10 + '0';
write(1, &value, 1);
}
/*int main(void)
{
ft_putnbr(42);
ft_putnbr(-2147483647);
return (0);
}*/
@@ -0,0 +1,52 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_print_comb.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/05 09:00:24 by lclerel- #+# #+# */
/* Updated: 2026/03/06 10:56:51 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void print(char a, char b, char c)
{
write(1, &a, 1);
write(1, &b, 1);
write(1, &c, 1);
if (!(a == '7' && b == '8' && c == '9'))
write(1, ", ", 2);
}
void ft_print_comb(void)
{
char a;
char b;
char c;
a = '0';
while (a <= '7')
{
b = a + 1;
while (b <= '8')
{
c = b + 1;
while (c <= '9')
{
print(a, b, c);
c++;
}
b++;
}
a++;
}
}
/*int main(void)
{
ft_print_comb();
return (0);
}*/
@@ -0,0 +1,50 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_print_comb2.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/05 13:45:48 by lclerel- #+# #+# */
/* Updated: 2026/03/05 19:09:34 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void print(char a, char space, char b)
{
write(1, &"0123456789"[a / 10], 1);
write(1, &"0123456789"[a % 10], 1);
write(1, &space, 1);
write(1, &"0123456789"[b / 10], 1);
write(1, &"0123456789"[b % 10], 1);
if (!(a == 98 && b == 99))
write(1, ", ", 2);
}
void ft_print_comb2(void)
{
char space;
char a;
char b;
space = ' ';
a = 0;
while (a <= 98)
{
b = a + 1;
while (b <= 99)
{
print(a, space, b);
b++;
}
a++;
}
}
/*int main(void)
{
ft_print_comb2();
return (0);
}*/
@@ -0,0 +1,72 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_print_combn.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/05 19:08:08 by lclerel- #+# #+# */
/* Updated: 2026/03/05 19:08:53 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void ft_put_tab(int *tab, int n)
{
int i;
char c;
i = 0;
while (i < n)
{
c = tab[i] + '0';
write(1, &c, 1);
i++;
}
if (tab[0] != (10 - n))
{
write(1, ", ", 2);
}
}
void ft_recursive(int *tab, int n, int pos, int start)
{
int i;
if (pos == n)
{
ft_put_tab(tab, n);
return ;
}
i = start;
while (i <= 9)
{
tab[pos] = i;
ft_recursive(tab, n, pos + 1, i + 1);
i++;
}
}
void ft_print_combn(int n)
{
int tab[10];
if (n > 0 && n < 10)
{
ft_recursive(tab, n, 0, 0);
}
}
/*int main(void)
{
write(1, "Test n = 2 :\n", 13);
ft_print_combn(2);
write(1, "\n\n", 2);
write(1, "Test n = 3 :\n", 13);
ft_print_combn(3);
write(1, "\n\n", 2);
write(1, "Test n = 9 :\n", 13);
ft_print_combn(9);
write(1, "\n\n", 2);
}*/
Submodule Imperative Programming/C-Programming-Fundamentals deleted from aafa0cd889
@@ -0,0 +1,18 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_putchar.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/04 09:24:28 by lclerel- #+# #+# */
/* Updated: 2026/03/04 14:03:05 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void ft_putchar(char c)
{
write(1, &c, 1);
}
@@ -0,0 +1,18 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_print_alphabet.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/04 09:53:03 by lclerel- #+# #+# */
/* Updated: 2026/03/04 14:06:37 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void ft_print_alphabet(void)
{
write(1, "abcdefghijklmnopqrstuvwxyz", 26);
}
@@ -0,0 +1,18 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_print_reverse_alphabet.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/04 13:27:15 by lclerel- #+# #+# */
/* Updated: 2026/03/04 13:48:03 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void ft_print_reverse_alphabet(void)
{
write(1, "zyxwvutsrqponmlkjihgfedcba", 26);
}
@@ -0,0 +1,18 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_print_numbers.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/04 10:06:13 by lclerel- #+# #+# */
/* Updated: 2026/03/04 14:08:05 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void ft_print_numbers(void)
{
write(1, "0123456789", 10);
}
@@ -0,0 +1,28 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_is_negative.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lclerel- <lclerel-@learner.42.tech> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/04 10:08:57 by lclerel- #+# #+# */
/* Updated: 2026/03/04 16:11:32 by lclerel- ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void ft_is_negative(int n)
{
char c;
if (n >= 0)
{
c = 'P';
}
else
{
c = 'N';
}
write(1, &c, 1);
}