8 条题解

  • -1
    @ 2023-3-21 17:27:02

    #include using namespace std; const int N = 1e5 + 10;

    int a[110][110],n,x,y,cnt = 1;

    int main(){ cin>>n; a[1][1] = 1; x = 2; y = 1;

    while(cnt < n * n)
    {
    	while(x >= 1 && y <= n){
    		a[x][y] = ++cnt;
    		x--;y++;
    	}
    	if(x == 0 && y <= n){
    		x++;
    	}
    	else
    	{
    		x+=2;
    		y--;
    	}
    	while(y >= 1 && x <= n){
    		a[x][y] = ++cnt;
    		x++;y--; 
    	}
    	
    	if(y==0 && x <= n){
    		y++;
    	}
    	else
    	{
    		x--;y+=2;
    	}
    }
    
    for(int i =1;i<=n;i++)
    {
    	for(int j=1;j<=n;j++)
    	cout<<a[i][j]<<" ";
    	cout<<endl;
    }
    
    return 0;
    

    }

    信息

    ID
    1063
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    递交数
    288
    已通过
    122
    上传者