题解
2025-04-14 15:03:04
发布于:江苏
28阅读
0回复
0点赞
#include<iostream>
using namespace std;
int main(){
    int n,a[110][110],sum=1;
    cin>>n;
    for(int i=0;i<n/2;i++){
        int left=i,right=n-i-1,x=i,y=right;
        if(i%2==0){
            for(int j=left;j<=right;j++){
                a[x][j]=sum++;
            }
            for(int j=x+1;j<=y;j++){
                a[j][right]=sum++;
            }
            for(int j=right-1;j>=left;j--){
                a[y][j]=sum++;
            }
            for(int j=y-1;j>x;j--){
                a[j][left]=sum++;
            }
        }else{
            for(int j=x;j<=y;j++){
                a[j][left]=sum++;
            }
            for(int j=left+1;j<=right;j++){
                a[y][j]=sum++;
            }
            for(int j=y-1;j>=x;j--){
                a[j][right]=sum++;
            }
            for(int j=right-1;j>left;j--){
                a[x][j]=sum++;
            }
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cout<<a[i][j]<<' ';
        }
        cout<<'\n';
    }
    return 0;
}
这里空空如也







有帮助,赞一个