- 神奇的幻方
你被骗了
- @ 2025-7-17 13:47:29
#include<bits/stdc++.h>
using namespace std;
int a[40][40],n,x,y;
int main(){
cin>>n;
x=0,y=(n-1)/2;
a[x][y]=1;
for(int k=2;k<=n*n;k++){
if(x==0&&y!=n-1){
x=n-1;y++;
}
else if(x!=0&&y==n-1){
x--;y=0;
}
else if(x==0&&y==n-1)x++;
else if(x!=0&&y!=n-1){
if(a[x-1][y+1]==0){
x--;y++;
}
else x++;
}
a[x][y]=k;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
1 条评论
-
-
#include<bits/stdc++.h>
using namespace std;
int a[50][50];
int main(){
int n; cin>>n; int x=0,y=0; y=(n-1)/2; a[x][y]=1; for(int i=2;i<=n*n;i++){ if(x==0&&y!=n-1){ x=n-1; y=y+1; a[x][y]=i; } else if(y==n-1&&x!=0){ x-=1; y=0; a[x][y]=i; } else if(x==0&&y==n-1){ x+=1; a[x][y]=i; } else if(x!=0&&y!=n-1){ if(a[x-1][y+1]==0){ x-=1; y+=1; a[x][y]=i; } else{ x=x+1; a[x][y]=i; } }} for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cout<<a[i][j]<<" "; } cout<<endl; } return 0; }
- 1
信息
- ID
- 483
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 174
- 已通过
- 70
- 上传者