暂存(sprial)

View Code
#include"iostream"
using namespace std;
int main()
{
int n,i,j;
int b[720][720];
while(cin>>n)
{
memset(b,
0,sizeof(b));
if(n==1) cout<<n<<endl;
else
{
i
=1,j=1;
int k=1;
for(int t=1; t<n ; t++)
{
while(j<=n-i+1&&j>=i) //横行->rigth
{
b[i][j]
=k++;
if(k==n*n) break;
j
++;
}
if(k-1==n*n) break;
j
--;
while(i<j&&i>=n-j+1) //竖行down
{
i
++;
b[i][j]
=k++;
if(k-1==n*n) break;
}
if(k-1==n*n) break;
while(j>n-i+1) //横行lift
{
j
--;
b[i][j]
=k++;
if(k-1==n*n) break;
}
i
--;
if(k-1==n*n) break;
while(i>j&&i<n-j+1) //竖行up
{
b[i][j]
=k++;
if(k-1==n*n) break;
i
--;
}
if(k-1==n*n) break;
i
++;j++;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf(
"%d",b[i][j]);
if(j<=n) cout<<" ";
}
cout
<<endl;
}
}
}
return 0;
}
原文地址:https://www.cnblogs.com/FCWORLD/p/1996797.html