#include <iostream.h>
#include <conio.h>//getch()
#include <iomanip.h>//setw()
void main()
{
int x[20][20];
int t,i,n,j,k,s,e,d,shift;
cout<<"enter n in matrix n * n:"<<endl;
cin>>n;
t=1;
s=1;
e=1;
k=1;
d=n;
while (k<=(n*n)) {
for(j=e;j<=d;j++)
{
x[s][j]=k;
k++;
} // end of for1
e++;
for(i=e;i<=d;i++)
{
x[i][d]=k;
k++;
}//end of for2
for(j=d-1;j>=s;j--)
{
x[d][j]=k;
k++;
}//end of for3
for(i=d-1;i>=e;i--)
{
x[i][s]=k;
k++;
}//end of for4
s++;
d--;
}//end of while
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<x[i][j]<<setw(7);
cout<<"\n";
}//end of for (print)
// >>part2(shift)<<
s=1;
e=1;
d=n;
cout<<"enter number shift = ";
cin>>shift;
k=(n*n)-(shift)+1;
while(t<=(n*n))
{
for(j=e;j<=d;j++)
{
x[s][j]=k;
if(k==(n*n))
k=0;
k++;
t++;
}//end of for 1
e++;
for(i=e;i<=d;i++)
{
x[i][d]=k;
if(k==(n*n))
k=0;
k++;
t++;
}//end of for 2
for(j=d-1;j>=s;j--)
{
x[d][j]=k;
if(k==(n*n))
k=0;
k++;
t++;
}//end of for 3
for(i=d-1;i>=e;i--)
{
x[i][s]=k;
if(k==(n*n))
k=0;
k++;
t++;
}//end of ofr 4
s++;
d--;
}//end of while
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<x[i][j]<<setw(7);
cout<<"\n";
}//end of for (print)
getch();
}//end of main function