DMG

Spirala pravougaona (mxn)

DMG
Jul 2nd, 2012
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.90 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. main()
  5. {
  6.       int n, m, a[50][50], s=1;
  7.      
  8.       cin >> n >> m;
  9.      
  10.       // Ako je n neparno
  11.       if (n%2!=0)
  12.       for (int i=0; i<=n/2; i++)
  13.       {
  14.            for (int j=i; j<m-i; j++)
  15.            {
  16.                a[i][j] = s;
  17.                s = s + 1;
  18.            }
  19.            
  20.            for (int j=i+1; j<n-i; j++)
  21.            {
  22.                a[j][m-i-1] = s;
  23.                s = s + 1;
  24.            }
  25.            
  26.            if  (i<n/2)
  27.            for (int j=m-i-2; j>=i; j--)
  28.            {
  29.                a[n-i-1][j] = s;
  30.                s = s + 1;  
  31.            }
  32.            
  33.            for (int j=n-i-2; j>i; j--)
  34.            {
  35.                a[j][i] = s;
  36.                s = s + 1;
  37.            }
  38.       }
  39.      
  40.       // Ako je n parno
  41.       if (n%2==0)
  42.       for (int i=0; i<n/2; i++)
  43.       {
  44.            for (int j=i; j<m-i; j++)
  45.            {
  46.                a[i][j] = s;
  47.                s = s + 1;
  48.            }
  49.            
  50.            for (int j=i+1; j<n-i; j++)
  51.            {
  52.                a[j][m-i-1] = s;
  53.                s = s + 1;
  54.            }
  55.            
  56.            for (int j=m-i-2; j>=i; j--)
  57.            {
  58.                a[n-i-1][j] = s;
  59.                s = s + 1;  
  60.            }
  61.            
  62.            for (int j=n-i-2; j>i; j--)
  63.            {
  64.                a[j][i] = s;
  65.                s = s + 1;
  66.            }
  67.       }
  68.      
  69.       // Postavlja posjednji clan, ukoliko je n neparno
  70.       for (int i=0; i<n; i++)
  71.       for (int j=0; j<m; j++)
  72.           if (a[i][j] == 0)
  73.           a[i][j] = s;
  74.        
  75.       // Stampanje sa malo sredjenim izgledom
  76.       for (int i=0; i<n; i++)
  77.       {
  78.          for (int j=0; j<m; j++)
  79.          if (a[i][j] < 10)
  80.          cout << " " << a[i][j] << " ";
  81.          else
  82.          cout << a[i][j] << " ";
  83.          cout << endl;
  84.       }    
  85.      
  86.       system ("PAUSE");
  87. }
Advertisement
Add Comment
Please, Sign In to add comment