蛇形矩阵----2017腾讯校招模拟题


输出蛇形矩阵

// ConsoleApplication5.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <vector>

using namespace::std ;

int main()
{
int n;
cin >> n;

vector<vector<int>> vec(n, vector<int>(n, 0));
int left = 0, right = n - 1;
int top = 0, bottom = n - 1;
int index = 1;

while (index <= n * n) {
for (int i = left; i <= right; ++i) {
if (index > n*n)break;
vec[top][i] = index;
++index;
}
++top;
for (int i = top; i <= bottom; ++i) {
if (index > n*n)break;
vec[i][right] = index;
++index;
}
--right;
for (int i = right; i >= left; --i) {
if (index > n*n)break;
vec[bottom][i] = index;
++index;
}
--bottom;
for (int i = bottom; i >= top; --i) {
if (index > n*n)break;
vec[i][left] = index;
++index;
}
++left;
}

for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cout << vec[i][j] << " ";
}
}

return 0;
}


智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告