piscine-c00/ex08/ft_print_combn.c

55 lines
1.5 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_print_reverse_alphabet.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tischmid <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/03/15 21:50:37 by tischmid #+# #+# */
/* Updated: 2023/03/16 05:00:01 by tischmid ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
void generate_outputs(char *output, int output_len, int max_len)
{
char digit;
if (output_len > 0)
digit = output[output_len - 1] + 1;
else
digit = '0';
if (output_len == max_len)
{
write(1, output, output_len);
if (output[0] != 10 - max_len + '0')
write(1, ", ", 2);
return ;
}
while (digit <= '9')
{
output[output_len] = digit++;
generate_outputs(output, output_len + 1, max_len);
}
}
void ft_print_combn(int n)
{
char output[10];
int i;
i = 0;
while (i < 10)
output[i++] = '\0';
generate_outputs(output, 0, n);
}
/* ////
int main(void)
{
ft_print_combn(5);
return (0);
}
*/ ////