12 条题解

  • 9
    @ 2025-1-24 10:38:46
    #include<bits/stdc++.h>
    using namesapce std;
    const int N=1e5+10;
    int dx[]={0,1,0,-1};
    int dy[]={1,0,-1,0};
    int a[110][110];
    int main()
    {
    	int n;
    	cin<<n;
    	int num=1;
    	int x,y;
    	int f=0;
    	x=y=1;
    	while(num<=n*n)
    	{
    		a[x][y]=num++;
    		x+=dx[f];
    		y+=dy[f];
    		if(x>n || y>n || x<1 || y<1 || a[x][y] != 0)
    		{
    			if(f==0) 
    			{
    				x++,y--;
    			}
    			else if(f==1)
    			{
    				x--,y--;
    			}
    			else if(f==2)
    			{
    				x--,y++;
    			}
    			else
    			x++,y++;
    			f++;
    			f%=4;
    		}
    	}
    	for(int i=1;i<=n;i++)
    	{
    		for(int j = 1 ; j <= n ; j++)
    		{
    		 	cout << a[i][j] << " ";
    		}
            cout << endl;
    	}
    	return o;
    }
    

    有标志认证,属三无产品,请大家放心食用

    • @ 2026-2-6 11:34:33

      namespace都能打错,人才!

  • 8
    @ 2025-1-24 10:48:36
    #include<iomanip>
    #include<cmath>
    #include<cstring>
    using namespace std;
    const int N=1e2+10;
    const int INF=0x3f3f3f3f;
    int a[N][N],n,x,y,num; 
    int main()
    {
    	cin>>n;
    	x=1,y=1;
    	while(num<n*n)
    	{
    		while(y<=n&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			y++;
    		}
    		x++,y--;
    		while(x<=n&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			x--; 
    		}
    		x--,y--;
    		while(y>=1&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			y--;
    		}
    		x--,y++;
    		while(x>=1&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			x++;
    		}
    		x++,y++;
    	}
    	for(int i=1;i<=n;i++)
    		{
    			for(int j=1;j<=n;j++)
    			{
    				cout<<a[i][j]<<" ";
    			}
    			cout<<endl;
    		}
    	return 0;
    }
    
    • @ 2025-1-24 13:06:07

      这个题解好👍 比我那个整洁多了~~~

  • 2
    @ 2026-4-12 19:21:58
    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    const int N=1e3+10; 
    const int INF=0x3f3f3f3f;
    int n,a[N][N],x=1,y=1,num;
    signed main()
    {
    	cin >> n;
    	while(num<n*n)
    	{
    		while(y<=n&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			y++;
    		}
    		x++,y--;
    		while(x<=n&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			x++;
    		}
    		x--,y--;
    		while(y>=1&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			y--;
    		}
    		x--,y++;
    		while(x>=1&&a[x][y]==0)
    		{
    			a[x][y]=++num;
    			x--;
    		}
    		x++,y++;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		for (int j=1;j<=n;j++)
    		{
    			cout << a[i][j] << " ";
    		}
    		cout << endl;
    	}
    	return 0;
    }
    
    • 1
      @ 2026-1-26 19:17:20
      #include <iostream>
      #include <iomanip>
      using namespace std;
      int main()
      {
      	int n,k = 1;
      	cin >> n;
      	int a[101][101];
      	for(int i = 1;i <= (n + 1) / 2;i++)
      	{
      		for(int j = i;j <= n + 1 - i;j++)
      			a[i][j] = k++;
      		for(int j = i + 1;j <= n + 1 - i;j++)
      			a[j][n + 1 - i] = k++;
      		for(int j = n - i;j >= i;j--)
      			a[n + 1 - i][j] = k++;
      		for(int j = n - i;j >= i + 1;j--)
      			a[j][i] = k++;
      	}
      	for (int i = 1;i <= n;i++)
      	{
      		for (int j = 1;j <= n - 1;j++)
      			cout << a[i][j] << ' ';
      		cout << a[i][n];
      		if (i != n)
      			cout << endl; 
      	}
      	return 0;
      }
      //最短代码
      • 1
        @ 2021-10-19 17:45:27
        #include <math.h>
        #include <stdio.h>
        #include <iostream>
        #include <string.h>
        #include <algorithm>
        using namespace std;
        int dx[] ={0,1,0,-1};
        int dy[] ={1,0,-1,0};
        int a[100][100];
        int main()
        {
            int n;
            cin >> n;
            int num = 1;
            int x,y;
            int f = 0;
            x = y = 1;
            while(num <= n*n)
            {
                a[x][y] =num++;
                x += dx[f];
                y += dy[f];
                if(x > n || y > n || x < 1 || y < 1 || a[x][y] != 0)
                {
                    if(f == 0) x++ ,y--;
                    else if(f == 1) x--,y--;
                    else if(f == 2) x--,y++;
                    else x++,y++;
                    f++;
                    f %= 4;
                }
            } 
            for(int i = 1; i <= n ; i++)
            {
                for(int j = 1 ; j <= n ; j++)
                    cout << a[i][j] << " ";
                cout << endl;
            }
            return 0;
        }
        
        • 0
          @ 2026-4-12 19:23:18
          using namespace std;
          int dx[] ={0,1,0,-1};
          int dy[] ={1,0,-1,0};
          int a[100][100];
          int main()
          {
              int n;
              cin >> n;
              int num = 1;
              int x,y;
              int f = 0;
              x = y = 1;
              while(num <= n*n)
              {
                  a[x][y] =num++;
                  x += dx[f];
                  y += dy[f];
                  if(x > n || y > n || x < 1 || y < 1 || a[x][y] != 0)
                  {
                      if(f == 0) x++ ,y--;
                      else if(f == 1) x--,y--;
                      else if(f == 2) x--,y++;
                      else x++,y++;
                      f++;
                      f %= 4;
                  }
              } 
              for(int i = 1; i <= n ; i++)
              {
                  for(int j = 1 ; j <= n ; j++)
                      cout << a[i][j] << " ";
                  cout << endl;
              }
              return 0;
          }
          
          
          • -2
            @ 2025-1-24 10:46:59
            using namespace std;
            const int N=10+10;
            int a[N][N],n,x=1,y=1,num;
            int main()
            {
            	cin>>n;
            	while(num<n*n)
            	{
            		while(y<=n&&a[x][y]==0)
            		{
            			a[x][y]=++num;
            			y++;
            		}
            		x++,y--;
            		while(x<=n&&a[x][y]==0)
            		{
            			a[x][y]=++num;
            			x++;
            		}
            		x--,y--;
            		while(y>=1&&a[x][y]==0)
            		{
            			a[x][y]=++num;
            			y--;
            		}
            		x--,y++;
            		while(y>=1&&a[x][y]==0)
            		{
            			a[x][y]=++num;
            			x--;
            		}
            		x++,y++;
            	}
            	for(int i=1;i<=n;i++){
            		for(int j=1;j<=n;j++){
            			cout<<a[i][j]<<" ";
            		}
            		cout<<endl;
            	}
            	return 0;
            }
            
            • -3
              @ 2025-1-24 10:43:13
              #include<bits/stdc++.h>
              using namespace std;
              const int N=1e5+10;
              int dx[]={0,1,0,-1};
              int dy[]={1,0,-1,0};
              int a[110][110];
              int main()
              {
              	int n;
              	cin>>n;
              	int num=1;
              	int x,y;
              	int f=0;
              	x=y=1;
              	while(num<=n*n)
              	{
              		a[x][y]=num++;
              		x+=dx[f];
              		y+=dy[f];
              		if(x>n || y>n || x<1 || y<1 || a[x][y] != 0)
              		{
              			if(f==0) 
              			{
              				x++,y--;
              			}
              			else if(f==1)
              			{
              				x--,y--;
              			}
              			else if(f==2)
              			{
              				x--,y++;
              			}
              			else
              			x++,y++;
              			f++;
              			f%=4;
              		}
              	}
              	for(int i=1;i<=n;i++)
              	{
              		for(int j = 1 ; j <= n ; j++)
              		{
              		 	cout << a[i][j] << " ";
              		}
                      cout << endl;
              	}
              	return 0;
              
              • -4
                @ 2024-11-10 18:50:06
                #include<iostream>
                using namespace std;
                int dx[]={0,1,0,-1};
                int dy[]={1,0,-1,0};
                int a[100][100];
                int main(){
                	int n;
                	cin>>n;
                	int num=1;
                	int x,y;
                	int f=0;
                	x=y=1;
                	while(num<=n*n){
                		a[x][y]=num++;
                		x+=dx[f];
                		y+=dy[f];
                		if(x>n||y>n||x<1||y<1||a[x][y]!=0){
                			if(f==0) x==,y--; 
                			else if(f==1) x--,y--;
                			else if(f==2) x--,y++;
                			else x++,y++;
                			f++;
                			f%=4;
                		}
                	}
                	for(int i=1;i<=n;i++){
                		for(int j=1;j<=n;i++){
                			cout<<a[i][j]<<" ";
                		}
                		cout<<endl;
                	}
                	return 0;
                }
                
                • -4
                  @ 2024-11-10 18:33:20
                  #include<bits/stdc++.h>
                  using namespace std;
                  const int N=1e5+10;
                  int dx[]={0,1,0,-1};
                  int dy[]={1,0,-1,0};
                  int a[100][100];
                  int main()
                         {int n;
                  	cin>>n;
                  	int num=1;
                  	int x,y;
                  	int f=0;
                  	x=y=1;
                  	while(num<=n*n){
                  		a[x][y]=num++;
                  		x+=dx[f];
                  		y+=dy[f];
                  		if(x>n||y>n||x<1||y<1||a[x][y]!=0){
                  			if(f==0) x++,y--;
                  			else if(f==1) x--,y--;
                  			else if(f==2) x--,y++;
                  			else x++,y++;
                  			f++;
                  			f%=4;
                  		}
                  	}
                  	for(int i=1;i<=n;i++){
                  		 for(int j = 1 ; j <= n ; j++)
                              cout << a[i][j] << " ";
                          cout << endl;
                  	}
                  	return 0;
                  }
                  
                  • -4
                    @ 2024-11-1 19:47:17
                    using namespace std;
                    int dx[] = {0,1,0,-1};
                    int dy[] = {1,0,-1,0};
                    int a[100][100];
                    int main() {
                    	int n;
                    	cin>>n;
                    	int num=1;
                    	int x,y;
                    	int f =0;
                    	x = y =1;
                    	while(num<= n*n)
                    	{
                    		a[x][y] = num++;
                    		x += dx[f];
                    		y += dy[f];
                    		if(x>n||y>n||x<1||y<1||a[x][y] != 0)
                    		{
                    			if(f==0) x++,y--;
                    			else if(f==1)x--,y--;
                    			else if(f==2)x--,y++;
                    			else x++,y++;
                    			f++;
                    			f %= 4;
                    		}
                    	}
                    	for(int i=1;i<=n;i++)
                    	{
                    		for(int j=1;j<=n;j++)
                    			cout <<a[i][j]<<" ";
                    		cout<<endl;
                    	}
                    
                    
                    }
                    
                    • -4
                      @ 2024-11-1 18:15:19
                      #include<bits/stdc++.h>
                      using namespace std;
                      const int N=1e5+10;
                      int dx[]={0,1,0,-1};
                      int dy[]={1,0,-1,0};
                      int a[100][100];
                      int main(){
                      	
                      	int n;
                      	cin>>n;
                      	int num=1;
                      	int x,y;
                      	int f=0;
                      	x=y=1;
                      	while(num<=n*n){
                      		a[x][y]=num++;
                      		x+=dx[f];
                      		y+=dy[f];
                      		if(x>n||y>n||x<1||y<1||a[x][y]!=0){
                      			if(f==0) x++,y--;
                      			else if(f==1) x--,y--;
                      			else if(f==2) x--,y++;
                      			else x++,y++;
                      			f++;
                      			f%=4;
                      		}
                      	}
                      	for(int i=1;i<=n;i++){
                      		 for(int j = 1 ; j <= n ; j++)
                                  cout << a[i][j] << " ";
                              cout << endl;
                      	}
                      	return 0;
                      }
                      
                      • @ 2024-11-1 18:22:03

                        我的密码是290170117你信吗

                    • 1

                    信息

                    ID
                    1043
                    时间
                    1000ms
                    内存
                    32MiB
                    难度
                    6
                    标签
                    递交数
                    1126
                    已通过
                    343
                    上传者