#include<bits/stdc++.h>
using namespace std;
int a[40][40],n,x,y;
int main(){
	cin>>n;
	x=0,y=(n-1)/2;
	a[x][y]=1;
	for(int k=2;k<=n*n;k++){
		if(x==0&&y!=n-1){
			x=n-1;y++;
		}
		else if(x!=0&&y==n-1){	
			x--;y=0;
		}
		else if(x==0&&y==n-1)x++;
		else if(x!=0&&y!=n-1){
			if(a[x-1][y+1]==0){
				x--;y++;
			}
			else x++;
		}
		a[x][y]=k;
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}

1 条评论

  • @ 2026-2-12 17:26:31

    #include<bits/stdc++.h>

    using namespace std;

    int a[50][50];

    int main(){

    int n;
    cin>>n;
    int x=0,y=0;
    y=(n-1)/2;
    a[x][y]=1;
    for(int i=2;i<=n*n;i++){
    	if(x==0&&y!=n-1){
    		x=n-1;
    		y=y+1;
    		a[x][y]=i;
    	}
    	else if(y==n-1&&x!=0){
    		x-=1;
    		y=0;
    		a[x][y]=i;
    	}
    	else if(x==0&&y==n-1){
    		x+=1;
    		a[x][y]=i;
    	} 
    	else if(x!=0&&y!=n-1){
    		if(a[x-1][y+1]==0){ 
    		x-=1;
    		y+=1;
    		a[x][y]=i;
    	}
    	else{
    		x=x+1;
    		a[x][y]=i;
    	}
    }
    

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

    • 1

    信息

    ID
    483
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    174
    已通过
    70
    上传者