Spiral Pattern – C++ solution

 

Code:

#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int i,j,k=1;

int l=0,r=1,d=0,u=0;
int a[n][n];

for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=0;
i=0;
j=-1;
while(k<=(n*n))
{
if(r==1)
{
j++;
if(j==n || a[i][j]!=0)
{
r=0;
d=1;
j–;
}
else
{
a[i][j]=k;
k++;
}
}
else if(d==1)
{
i++;
if(i==n || a[i][j]!=0)
{
i–;
d=0;
l=1;
}
else
{
a[i][j]=k;
k++;
}
}
else if(l==1)
{
j–;
if(j<0 || a[i][j]!=0)
{
l=0;
j++;
u=1;
}
else
{
a[i][j]=k;
k++;
}

}
else if(u==1)
{
i–;
if(i<0 || a[i][j]!=0)
{
i++;
u=0;
r=1;
}
else
{
a[i][j]=k;
k++;
}
}
}

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<“\t”;
cout<<“\n”;
}
return 0;

}

Input:

5

Output:

1	2	3	4	5	
16	17	18	19	6	
15	24	25	20	7	
14	23	22	21	8	
13	12	11	10	9

Input:

4

Output:

1	2	3	4	
12	13	14	5	
11	16	15	6	
10	9	8	7	

One comment on “Spiral Pattern – C++ solution

Leave a comment