文章
3
粉丝
321
获赞
7
访问
31.1k
#include<bits/stdc++.h>
using namespace std;
int a[21][21];
int main(){
int n;
scanf("%d",&n);
int w = 1;
//奇数的时候给中心元素赋值
if(n%2==1) a[n/2][n/2] = n*n;
//圈数
for(int k = 0; k < n / 2; k++){
//向下
for(int i = k; i < n-k; i++){
a[i][k] = w++;
}
//向右
for(int i = k+1; i < n-k;i++){
a[n-k-1][i] = w++;
}
//向上
for(int i = n-k-2; i > k-1; i--){
a[i][n-k-1] = w++;
}
//向左
for(int i = n-k-2;i > k; i--){
a[k][i] = w++;
}
}
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
printf("%-4d",a[i][j]);
}
printf("\n");
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发