Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include <cstdio>
  2. #include <malloc.h>
  3. #include <conio.h>
  4.  
  5. int fact(int n)
  6. {
  7.     if (n == 1) return 1;
  8.     return (n * fact(n - 1));
  9. }
  10.  
  11. int main()
  12. {
  13.     int i, l, j, k, buf, n, nfact;
  14.  
  15.     scanf("%d", &n);
  16.     int *a = (int*)malloc(sizeof(int)*n);
  17.  
  18.     printf(" 1: ");
  19.     for (i = 0; i < n; i++)
  20.     {
  21.         a[i] = i + 1;
  22.         printf("%d ", a[i]);
  23.     }
  24.  
  25.     nfact = fact(n);
  26.  
  27.     for (l = 0; l < nfact - 1; l++)
  28.     {
  29.         for (i = n - 2; i >= 0; i--)
  30.         {
  31.             if (a[i] < a[i + 1])
  32.             {
  33.                 for (j = n - 1; j > i; j--)
  34.                 {
  35.                     if (a[j] > a[i])
  36.                     {
  37.                         buf = a[j];
  38.                         a[j] = a[i];
  39.                         a[i] = buf;
  40.                         break;
  41.                     }
  42.                 }
  43.  
  44.                 for (k = i + 1; k < n; k++)
  45.                 {
  46.                     for (j = k + 1; j < n; j++)
  47.                     {
  48.                         if (a[k] > a[j])
  49.                         {
  50.                             buf = a[j];
  51.                             a[j] = a[k];
  52.                             a[k] = buf;
  53.                         }
  54.                     }
  55.                 }
  56.                 break;
  57.             }
  58.         }
  59.  
  60.         printf("\n%2d: ", l + 2);
  61.         for (k = 0; k < n; k++)
  62.             printf("%d ", a[k]);
  63.     }
  64.  
  65.     free(a);
  66.  
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement