Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
104987 方文轩 魔方阵 C++ 运行超时 0 1000 MS 240 KB 1079 2023-10-04 21:29:46

Tests(0/1):


#include <iostream> #include <iomanip> using namespace std; int main() { int i, j, i1, j1, n, p, d[16][16]; cout << "请输入阶数(必须是奇数):"; while(1)//控制输入的阶数 { cin >> n; if( n<1 || n>10 ) continue; if( n>1 && n%2!=0 ) break; } for(i=1;i<n+1;++i)//数组初始化全为0 for(j=1;j<n+1;++j) d[i][j]=0; i=1; j=n/2+1; d[i][j]=1;//1位于第一行的正中间 for(p=2;p<=n*n;++p)//数字2、3、……、n*n的摆放 { //上一行,下一列 i1=i; j1=j; i--; j++; //可能的三种情况 if(i==0) i=n;//没有上一行的处理措施 if(j>n) j=1;//没有下一列的处理措施 if(d[i][j]!=0) {i=i1+1;j=j1;}//新位置已经放了数的处理措施 d[i][j]=p;//摆放 } for(i=1;i<n+1;++i)//输出魔方阵 { for(j=1;j<n+1;++j) cout<<setw(3)<<d[i][j]; cout<<endl; } return 0; }


测评信息: