9 条题解

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

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

    • 0
      @ 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;
        }
        
        • -2
          @ 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;
          
          • -2
            @ 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;
            }
            
            • -2
              @ 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;
              }
              
              • -2
                @ 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;
                	}
                
                
                }
                
                • -2
                  @ 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
                标签
                递交数
                880
                已通过
                283
                上传者