22 条题解

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

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

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

      #include <stdio> 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; }

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

                #include <iostream> #include <cmath> 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

                  #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 <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-4-19 22:00:07

                      左上->右上->右下->左下 这样循环

                      #include<iostream>
                      #include<iomanip>
                      #include<stdio.h>
                      #include<math.h>
                      #include<string>
                      #include<string.h>
                      #include<sstream>
                      #include<algorithm>
                      using namespace std;
                      typedef long long ll;
                      const int N=1e1+10;//开大点
                      const int INF=0x3f3f3f3f;
                      int a,b,x[N][N];
                      int main(){
                      	memset(x,-1,sizeof(x));
                      	cin>>b;
                      	for(int i=1;i<=b;i++)
                      		for(int j=1;j<=b;j++)x[i][j]=0;//规划数组的活动空间
                          int n=1,m=0;//m一开始就自增,所以为0
                          while(a<=b*b){//a为每次赋值的值
                          	while(x[n][++m]==0)x[n][m]=++a;
                      		n++;//越界了,抵消
                      		while(x[++n][m]==0)x[n][m]=++a;
                      		m--;//同上批注
                      		while(x[n][--m]==0)x[n][m]=++a;
                      		n--;
                      		while(x[--n][m]==0)x[n][m]=++a;
                      		m++;
                      	}
                      	for(int i=1;i<=b;i++){//输出
                      		for(int j=1;j<=b;j++)cout<<x[i][j]<<" ";
                      		cout<<"\n";
                      	}
                      	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<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(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<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(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<iostream> #include<algorithm> #include<math.h> #include<cstdio> #include<string.h> #include<cctype> #include<cmath> 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; }

                                      信息

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