Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <unistd.h>
- #include <stdio.h>
- void ft_putchar(char c)
- {
- write(1, &c, 1);
- }
- void ft_show(int *number, int n)
- {
- int i;
- i = 0;
- while(i < n)
- {
- ft_putchar(number[i] + '0');
- i++;
- }
- write(1, ", ", 2);
- }
- int ft_print_combn(int n)
- {
- int number[10];
- int rang;
- int cpy_n;
- int i;
- int k;
- int nb_showed;
- nb_showed = 0;
- cpy_n = n;
- i = 0;
- rang = 0;
- while(i < n)
- {
- number[i] = i;
- i++;
- }
- while (number[0] <= 10-n)
- {
- k = 9;
- i = 0;
- ft_show(number,cpy_n);
- nb_showed++;
- if(number[n - 1] == 9)
- {
- write(1, "\n", 1);
- if(number[0] == 10 - n)
- break;
- while(number[n - 1 - i] == k)
- {
- i++;
- k--;
- if(number[n - 1 - i] < k)
- {
- number[n - 1 - i]++;
- while(i > 0)
- {
- number[n - i] = number[n - 1 - i] + 1;
- i--;
- }
- break;
- }
- }
- }
- else
- number[n - 1]++;
- }
- return (nb_showed);
- }
- int main(void)
- {
- printf("Nombre de solutions : %d\n",ft_print_combn(5));
- return (0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement