题目:https://www.luogu.org/problemnew/show/P2615
直接按题意模拟即可;
用 Emacs 做的第一道题!
代码如下:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int const maxn=45; int n,a[maxn][maxn]; int main() { scanf("%d",&n); int prx=1,pry=n/2+1; a[prx][pry]=1; for(int i=2;i<=n*n;i++) { if(prx==1&&pry!=n)prx=n,pry++,a[prx][pry]=i; else if(prx!=1&&pry==n)prx--,pry=1,a[prx][pry]=i; else if(prx==1&&pry==n)prx++,a[prx][pry]=i; else if(prx!=1&&pry!=n) { if(a[prx-1][pry+1]==0)prx--,pry++,a[prx][pry]=i; else prx++,a[prx][pry]=i; } } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { printf("%d ",a[i][j]); if(j==n)printf("\n"); } return 0; }
本文提供了一种解决洛谷P2615魔方问题的算法思路,通过直接模拟的方式生成魔方填充数字的矩阵,并使用Emacs作为开发环境实现了代码。该算法能够按照题目要求正确填充并输出魔方矩阵。
743

被折叠的 条评论
为什么被折叠?



