Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.38 KB | None | 0 0
  1. #include <unistd.h>
  2. #include <stdio.h>
  3.  
  4. void    ft_putchar(char c)
  5. {
  6.     write(1, &c, 1);
  7. }
  8.  
  9. void    ft_show(int *number, int n)
  10. {
  11.     int i;
  12.  
  13.     i = 0;
  14.     while(i < n)
  15.     {
  16.         ft_putchar(number[i] + '0');
  17.         i++;
  18.     }
  19.     write(1, ", ", 2);
  20. }
  21.  
  22. int ft_print_combn(int n)
  23. {
  24.     int number[10];
  25.     int rang;
  26.     int cpy_n;
  27.     int i;
  28.     int k;
  29.     int nb_showed;
  30.  
  31.     nb_showed = 0;
  32.     cpy_n = n;
  33.     i = 0;
  34.     rang = 0;
  35.     while(i < n)
  36.     {
  37.         number[i] = i;
  38.         i++;
  39.     }
  40.     while (number[0] <= 10-n)
  41.     {
  42.         k = 9;
  43.         i = 0;
  44.         ft_show(number,cpy_n);
  45.         nb_showed++;
  46.         if(number[n - 1] == 9)
  47.         {
  48.             write(1, "\n", 1);
  49.             if(number[0] == 10 - n)
  50.                 break;
  51.             while(number[n - 1 - i] == k)
  52.             {
  53.                 i++;
  54.                 k--;
  55.                 if(number[n - 1 - i] < k)
  56.                 {
  57.                   number[n - 1 - i]++;
  58.                   while(i > 0)
  59.                   {
  60.                   number[n - i] = number[n - 1 - i] + 1;
  61.                   i--;
  62.                   }
  63.                   break;
  64.                 }
  65.             }
  66.         }
  67.         else
  68.             number[n - 1]++;
  69.     }
  70.     return (nb_showed);
  71. }
  72.  
  73. int main(void)
  74. {
  75.     printf("Nombre de solutions : %d\n",ft_print_combn(5));
  76.     return (0);
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement