10 条题解

  • 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;
    }
    

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

    • 5
      @ 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

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

    • 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;
        }
        
        • -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;
            
            • -3
              @ 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;
              }
              
              • -3
                @ 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;
                }
                
                • -3
                  @ 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;
                  	}
                  
                  
                  }
                  
                  • -3
                    @ 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
                  标签
                  递交数
                  1004
                  已通过
                  310
                  上传者