模拟 + 二维数组 + 分支
2023-08-30 21:28:50
发布于:上海
20阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int mp[109][109]={0};
int main(){
	int n;
	cin>>n;
	mp[1][n/2+1]=1;
	int lapx=1,lapy=n/2+1;
	for(int i=2;i<=n*n;i++){
		if(lapx==1 && lapy!=n){
			mp[n][lapy+1]=i;
			lapx=n,lapy++;
			continue;
		}
		if(lapy==n && lapx!=1){
			mp[lapx-1][1]=i;
			lapx--,lapy=1;
			continue;
		}
		if(lapx==1 && lapy==n){
			mp[lapx+1][lapy]=i;
			lapx++;
			continue;
		}
		if(lapx!=1 && lapy!=n && mp[lapx-1][lapy+1]==0){
			mp[lapx-1][lapy+1]=i;
			lapy++,lapx--;
			continue;
		}
		else{
			mp[lapx+1][lapy]=i;
			lapx++;
			continue;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<mp[i][j]<<" ";
		}
		cout<<"\n";
	}
	return 0;
}
这里空空如也



有帮助,赞一个