2016-04-03 15:08
西南民族大学 前端工程师 coderwj:大题时间太短,又紧张,没做出来,真的很桑心。
蛇形矩阵后来想想还是挺简单的:
为什么考试时候就没做好。。。呜呜~~~
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
cin>>n;
int res[n][n];
vector<int> v;
for(int i=1;i<=n*n;i++)
v.push_back(i);
int x=0,y=0;
int t=0;//层数
for(int i=0;i<v.size();i++)
{
res[x][y]=v[i];
if(y<n-1-t && x==t)//向右
{
y++;
}
else if(x<n-1-t && y==n-1-t)//向下
{
x++;
}
else if(y>t && x==n-1-t)//向左
{
y--;
}
else if(x>t+1 && y==t)//向上
{
x--;
if(x==t+1)
t++;//做完一层到下一层
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i==n-1 && j==n-1)
cout<<res[i][j]<<endl;
else
cout<<res[i][j]<<"
";
}
}
return 0;
}
0 点赞 评论 收藏
分享
关注他的用户也关注了: