Advertisement
Guest User

patratul magic

a guest
Feb 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.56 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int a[101][101], n;
  6.  
  7. void patrat(int a[][101], int n)
  8. {
  9.     int j=n/2+1, i=1;
  10.     a[i][j]=1;
  11.     int ant=1;
  12.     while(ant<=n*n)
  13.     {
  14.         i--, j--;
  15.         if(i==0 && j!=0)
  16.         {
  17.             int i2=n;
  18.             if(a[i2][j]!=0)
  19.             {
  20.                 i+=2, j++;
  21.                 a[i][j]=ant+1;
  22.             }
  23.             else
  24.             {
  25.                 a[i2][j]=ant+1;
  26.                 i=i2;
  27.             }
  28.  
  29.         }
  30.         else if(j==0 && i==0)
  31.         {
  32.             if(a[n][n]==0)
  33.             {
  34.                 a[n][n]=ant+1;
  35.                 i=n;
  36.                 j=n;
  37.             }
  38.             else
  39.             {
  40.                 i=2, j=1;
  41.                 a[i][j]=ant+1;
  42.             }
  43.         }
  44.         else if(j==0 && i!=0)
  45.         {
  46.             int j2=n;
  47.             if(a[i][j2]!=0)
  48.             {
  49.                 i+=2, j++;
  50.                 a[i][j]=ant+1;
  51.             }
  52.             else
  53.             {
  54.                 a[i][j2]=ant+1;
  55.                 j=j2;
  56.             }
  57.         }
  58.         else
  59.         {
  60.             if(a[i][j]==0)
  61.                 a[i][j]=ant+1;
  62.             else
  63.             {
  64.                 i+=2, j++;
  65.                 a[i][j]=ant+1;
  66.             }
  67.         }
  68.         ant++;
  69.     }
  70. }
  71.  
  72. void afisare(int a[][101], int n)
  73. {
  74.     for(int i=1; i<=n; i++)
  75.     {
  76.         for(int j=1; j<=n; j++)
  77.             cout << a[i][j] << " ";
  78.         cout << endl;
  79.     }
  80.  
  81. }
  82.  
  83. int main()
  84. {
  85.     cin >> n;
  86.     patrat(a, n);
  87.     afisare(a, n);
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement