社区讨论
打出来的幻方最右上角的数字总是很奇怪,求助
P2615[NOIP 2015 提高组] 神奇的幻方参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo1ct4ns
- 此快照首次捕获于
- 2023/10/22 18:56 2 年前
- 此快照最后确认于
- 2023/11/02 19:21 2 年前
CPP
#include<iostream>
using namespace std;
int main(){
int n,x,y;
cin>>n;
int a[n][n]={0};
a[0][(n-1)/2]=1;
x = 0;
y = (n-1)/2;
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 (x==0&&y==n-1){
//第一行最后一列
x=x+1;
a[x][y]=i;
}
else if (y==n-1&&x!=0){
//最后一列但不是第一行
y=0;
x=x-1;
a[x][y]=i;
}
else {
if(a[x-1][y+1]==0){
x=x-1;
y=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;
}
感觉从某一项开始就出错了,但是自己检查不出来 > x <
回复
共 2 条回复,欢迎继续交流。
正在加载回复...