2239 螺旋数组
这个题的又名蛇形矩阵,是二维数组的经典例题
这个题就是模拟了
本题好像很水的样子
先搞出来一个蛇形数组,然后输出第xy个位置就好了
#include<iostream>
#include<string>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
int n;
int a[3000][30000];
int qi,zhong;
int ii=1;
int x,y;
int main()
{
qi=1;
cin>>n;
cin>>x>>y;
zhong=n;
while(qi<=zhong)
{
for(int w=qi;w<=zhong;w++)
{
a[qi][w]=ii;
ii++;
}
for(int ww=qi+1;ww<=zhong;ww++)
{
a[ww][zhong]=ii;
ii++;
}
if(qi!=zhong)
{
for(int we=zhong-1;we>=qi;we--)
{
a[zhong][we]=ii;
ii++;
}
}
if(qi!=zhong)
{
for(int wt=zhong-1;wt>qi;wt--)
{
a[wt][qi]=ii;
ii++;
}
}
qi++;
zhong--;
}
cout<<a[x][y]<<endl;
return 0;
}