daan

061loujiazheng 2020-11-21 11:42:20 24 返回题目

#include<bits/stdc++.h> using namespace std; int a[1000][1000]; int main() { int n; while(cin>>n) { int num=1,i,j; int cycle=n/2+1,cy=1;//圈数

	while(cy<=cycle) {
		for(i=cy,j=cy; j<=n-cy; j++) //上
			a[i][j]=num++;
		for(j=n-cy+1,i=cy; i<=n-cy; i++) //右
			a[i][j]=num++;
		for(i=n-cy+1,j=n-cy+1; j>=cy+1; j--)//下
			a[i][j]=num++;
		for(i=n-cy+1,j=cy; i>=cy+1; i--)//左
			a[i][j]=num++;
		cy++; 
	}
	if(n%2==1) 
		a[cycle][cycle]=n*n;
	for(i=1; i<=n; i++) {
		for(j=1; j<=n; j++)
		 
			cout<<a[i][j]<<" ";
		cout<<endl;
	}

}
return 0;

}

{{ vote && vote.total.up }}