using namespace std;
int num[105][105];
int main(){
	int n,w;
	cin>>n;
	w = n;
	num[1][1] = n;
	for(int i=1,j=1;w >= 0;){//一直填到n*n个数填完
		while(++j<=2*n+1&&!num[i][j])num[i][j]=w;--j;//向右 
		while(++i<=2*n+1&&!num[i][j])num[i][j]=w;--i;//向下
		while(--j> 0&&!num[i][j])num[i][j]=w;++j;//向左 
		while(--i> 0&&!num[i][j])num[i][j]=w;++i;//向上
		w--;
		}
		
	for(int i=1;i<=2 * n + 1;++i,cout<<endl)for(int j=1;j<=2 * n + 1;++j)
	cout<<setw(2)<< left <<num[i][j];//输出
	return 0;
}

2 comments

  • 1

Information

ID
297
Time
1000ms
Memory
256MiB
Difficulty
8
Tags
# Submissions
268
Accepted
45
Uploaded By