神奇的幻方(NOIP2015)
阿新 • • 發佈:2019-02-10
先給題目連結:神奇的幻方
太水了這題,直接模擬就行,直接貼程式碼。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int num[n][n];
memset(num,0,sizeof(num));
num[0][n/2]=1;
int x=0,y=n/2;
for(int i=2;i<=n*n;i++){
if(x==0&&y!=n-1){
x=n-1 ;
y++;
}else if(x!=0&&y==n-1){
y=0;
x--;
}else if(x==0&&y==n-1){
x++;
}else if(num[x-1][y+1]==0){
x--;
y++;
}else{
x++;
}
num[x][y]=i;
}
for(int i=0;i<n;i++){
for (int j=0;j<n;j++){
printf("%d",num[i][j]);
if(j!=n-1){
printf(" ");
}
}
if(i!=n-1)
printf("\n");
}
return 0;
}