/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_power.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: thrieg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/07 14:57:23 by thrieg #+# #+# */ /* Updated: 2025/02/16 19:04:15 by thrieg ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" ssize_t ft_power(ssize_t nb, ssize_t power) { ssize_t answer; ssize_t i; if (power < 0) return (0); if (power == 0) return (1); if (power % 2 == 0) return (ft_power(nb * nb, power / 2)); answer = nb; i = 1; while (i < power) { if ((power - i) % 2 == 0) { return (answer * ft_power(nb, (power - i))); } answer *= nb; i++; } return (answer); }