NOIP2015 Day1 T1 神奇的幻方
阿新 • • 發佈:2018-11-11
純模擬
程式碼:
#include<cstdio> #include<iostream> #include<cstring> using namespace std; int data[41][41];//矩陣儲存 int main(){ int n;//幻方大小 cin>>n; memset(data,-1,sizeof(data)); int x=1,y=(n+1)/2;//x,y的值 data[x][y]=1; for(int i=2;i<n*n+1;i++){ if(x==1&&y!=n){ x=n;y=y+1; data[x][y]=i; }else if(x!=1&&y==n){ x=x-1;y=1; data[x][y]=i; }else if(x==1&&y==n){ x=x+1; data[x][y]=i; }else if(x!=1&&y!=n){ if(data[x-1][y+1]==-1){ x=x-1;y=y+1; data[x][y]=i; }else{ x=x+1; data[x][y]=i; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<data[i][j]<<" "; } cout<<endl; } }