/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_print_combn.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/06 09:43:06 by gbaconni #+# #+# */ /* Updated: 2021/08/06 11:38:05 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include void ft_putnbr(int nb) { char str[10]; int i; i = 0; if (nb == 0) write(1, "0", 1); while (nb != 0) { str[i] = nb % 10 + '0'; nb /= 10; i++; } while (i > 0) { --i; if (str[i] >= 48 && str[i] <= 57) write(1, &str[i], 1); } } int power(int x, int n) { int r; r = 1; while (n--) r *= x; return (r); } int ndigits(int n) { int r; r = 1; if (n < 0) { if (n == 0) n = 2147483647; else n = -n; } while (n > 9) { n /= 10; r++; } return (r); } void ft_print_combn(int n) { int x; int z; int max; max = power(10, n) - 1; x = 1; while (x <= max) { z = n - ndigits(x); while (z-- > 0) write(1, "0", 1); ft_putnbr(x); if (x != max) write(1, ", ", 2); x++; } }