如题
题目是要输出一个螺旋形的矩阵
比如输入4, 输出就是
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
include
#include
using namespace std;
int main()
{
int **a, n, i, j, k = 1;
cin >> n;
if(n > 120) cin >> n;
a = new int *[n];
for (i = 0; i < n; ++i) a[i] = new int [n];
for(i = 0; i < n; ++i) for(j = 0; j < n; ++j) a[i][j] = 0;
i = j = 0;
while(k <= n * n){
while(i < n && j >= 0) {
if(a[j][i] != 0) break;
a[j][i] = k;
++i;
++k;
}
i -= 1; j += 1;
while(j < n && j >= 0){
if(a[j][i] != 0) break;
a[j][i] = k;
++j;
++k;
}
j -= 1; i -= 1;
while(i < n && i >= 0){
if(a[j][i] != 0) break;
a[j][i] = k;
--i;
++k;
}
i += 1; j -= 1;
while(i < n && i >= 0){
if(a[j][i] != 0) break;
a[j][i] = k;
--j;
++k;
}
j += 1; i += 1;
}
cout << endl;
for(i = 0; i < n; ++i) {
for(j = 0; j < n; ++j) cout << setw(6) << a[i][j];
cout << endl;
}
for(i = 0; i < n; ++i) delete [] a[i];
delete [] a;
return 0;
}