信息数学-幻方

[NOIP2015 提高组] 神奇的幻方

https://www.luogu.com.cn/problem/P2615

https://www.bilibili.com/video/BV1Bf4y1g74C

#include<bits/stdc++.h>
using namespace std;
int n,a[42][42],x,y;
int main(){
	cin>>n;
	x=1;
	y=n/2+1;
	a[x][y]=1;
	for(int i=2;i<=n*n;i++){
		if(x==1 && y!=n){
			x=n;
			y=y+1;
		}else if(x!=1 && y==n){
			x=x-1;
			y=1;
		}else if(x==1 && y==n){
			x=x+1;
		}else if(x!=1 && y!=n){
			if(a[x-1][y+1]==0){
				x=x-1;
				y=y+1;
			}else{
				x=x+1;
			}
		}
		a[x][y]=i;
	}
	
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
posted @ 2022-05-26 21:19  new-code  阅读(19)  评论(0)    收藏  举报