2 条题解

  • 0
    @ 2023-12-23 8:48:12
    #include<bits/stdc++.h>
    using namespace std;
    int m,q=1,a[15][15];
    void d(int n,int w){
    if(w>=(m+1)/2) return ;
    for(int i=1+w;i<=n;i++){
    a[i][n]=q;
    q++;
    }
    for(int i=n-1;i>=1+w;i--){
    a[n][i]=q;
    q++;
    }
    for(int i=n-1;i>=1+w;i--){
    a[i][1+w]=q;
    q++;
    }
    for(int i=2+w;i<n;i++){
    a[1+w][i]=q;
    q++;
    }
    d(n-1,w+1);
    }
    int main(){
    cin>>m;
    d(m,0);
    for(int i=1;i<=m;i++){
    for(int j=1;j<=m;j++){
    cout<<setw(4)<<a[i][j];
    }
    cout<<endl;
    }
    return 0;
    }
    
    • 0
      @ 2023-8-7 14:20:06
      #include<bits/stdc++.h>
      using namespace std;
      int a[20][20];
      int main()
      {
      	ios::sync_with_stdio(0);
      	cin.tie(0);
      	cout.tie(0);
      	int n;
      	cin>>n;
      	a[1][n]=1;
      	int x=1,y=n,k=1;
      	while(k<(n*n))
      	{
      		while(k<(n*n)&&x<n&&!a[x+1][y])a[++x][y]=++k;
      		while(k<(n*n)&&y>1&&!a[x][y-1])a[x][--y]=++k;
      		while(k<(n*n)&&x>1&&!a[x-1][y])a[--x][y]=++k;
      		while(k<(n*n)&&y<n&&!a[x][y+1])a[x][++y]=++k;
      	}
      	for(int i=1;i<=n;i++)
      	{
      		for(int j=1;j<=n;j++)
      			cout<<setw(4)<<a[i][j];
      		cout<<endl;
      	}
      	return 0;
      }
      
      • 1

      信息

      ID
      30
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      (无)
      递交数
      265
      已通过
      69
      上传者