21 条题解

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

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

    • 3
      @ 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
      @ 2025-1-24 11:14:11

      #include const int N=1e10+10; const int INF=0x3f3f3f3f; int n,a[N][N]; int main(){ cin>>n; for(int i=1;i<=n;i++){ for(int j=1;i<=n;i++){ a[j][i]+=n-(n-j); cout<<a[j][i]; a[j][i+1]+=n*j; } cout<<end1; } 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;
        }
        
        • -1
          @ 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;
          }
          
          • -1
            @ 2025-1-24 10:42:55

            #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(f0) { x++,y--; } else if(f1) { 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; }

            • -1
              @ 2025-1-24 10:42:24

              #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(f0) { x++,y--; } else if(f1) { 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; }

              • -1
                @ 2024-4-9 17:23:32
                老师抄我的
                #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;
                }
                
              • -1
                @ 2023-5-10 20:31:31

                #include #include using namespace std; const int N=10+10; int n,a[N][N],cnt,x=1,y=1; int main() { cin>>n; while(cnt<n*n) { while(y <= n && a[x][y] == 0) a[x][y++] = ++cnt; x++,y--; while(x <= n && a[x][y] == 0) a[x++][y] = ++cnt; x--,y--; while(y >= 1 && a[x][y] == 0) a[x][y--] = ++cnt; x--,y++; while(x >= 1 && a[x][y] ==0 ) a[x--][y] = ++cnt; 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
                  @ 2023-5-10 19:43:46

                  #include<bits/stdc++.h> using namespace std; const int N=10+10; const int INF=0X3f3f3f3f; int n,x=1,y=1,a[N][N],cnt; int main(){ cin>>n; while(cnt<n*n) { while(y<=n && a[x][y]==0) a[x][y++]=++cnt; x++,y--; while(x<=n && a[x][y]==0) a[x++][y]=++cnt; x--,y--; while(y>=1 && a[x][y]==0) a[x][y--]=++cnt; x--,y++; while(x>=1 && a[x][y]==0) a[x--][y]=++cnt; 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
                    @ 2023-5-7 18:03:20

                    #include <math.h> #include <stdio.h> #include #include <string.h> #include 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: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:48:26

                            #include<bits/stdc++.h> 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(f0) x++,y--; else if(f1) 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; } //直接AC !

                            • -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 19:45:47
                                  1. #include

                                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(f0) x++,y--; else if(f1)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 19:45:23

                                  #include

                                  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(f0) x++,y--; else if(f1)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; }

                                                    1. }
                                  • -2
                                    @ 2024-11-1 19:33:12

                                    #include #include #include<math.h> #include #include<string.h> #include #include using namespace std; int main() { int n,q,num=1,i=1,j=1; cin>>n; int a[105][105]={}; q=ceil(n/2.0); for(int k=1;k<=q;k++) { i=k; for(j=k;j<=n-k+1;j++) { a[i][j]=num; num++; } j=n-k+1; for(i=k+1;i<=n-k+1;i++) { a[i][j]=num; num++; } i=n-k+1; for(j=n-k;j>=k;j--) { a[i][j]=num; num++; } j=k; for(i=n-k;i>=k+1;i--) { a[i][j]=num; num++; } } 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 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你信吗

                                    信息

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