This commit is contained in:
tosu 2023-03-17 04:03:20 +01:00
parent c5903c79e9
commit 1c4aaaf959
1 changed files with 14 additions and 21 deletions

View File

@ -12,50 +12,43 @@
#include <unistd.h>
void print_ns(char *n_str, int n_str_len, int max_len)
void generate_outputs(char *output, int output_len, int max_len)
{
char new_n_str[10];
char digit;
int i;
i = 0;
while (i < n_str_len)
if (output_len > 0)
digit = output[output_len - 1] + 1;
else
digit = '0';
if (output_len == max_len)
{
new_n_str[i] = n_str[i];
++i;
}
digit = '0';
if (i > 0)
digit = n_str[i - 1] + 1;
if (n_str_len == max_len)
{
write(1, n_str, n_str_len);
if (n_str[0] != 10 - max_len + 0x30)
write(1, output, output_len);
if (output[0] != 10 - max_len + 0x30)
write(1, ", ", 2);
return ;
}
while (digit <= '9')
{
new_n_str[n_str_len] = digit++;
print_ns(new_n_str, n_str_len + 1, max_len);
output[output_len] = digit++;
generate_outputs(output, output_len + 1, max_len);
}
}
void ft_print_combn(int n)
{
char n_str[10];
char output[10];
int i;
i = 0;
while (i < 10)
n_str[i++] = '\0';
print_ns(n_str, 0, n);
output[i++] = '\0';
generate_outputs(output, 0, n);
}
/* ////
int main(void)
{
ft_print_combn(2);
ft_print_combn(5);
return (0);
}
*/ ////