山东科技大学ojt题之魔方阵

山东科技大学ojt题之魔方阵

ID:8916171

大小:17.50 KB

页数:3页

时间:2018-04-12

山东科技大学ojt题之魔方阵_第1页
山东科技大学ojt题之魔方阵_第2页
山东科技大学ojt题之魔方阵_第3页
资源描述:

《山东科技大学ojt题之魔方阵》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、魔方阵TimeLimit:1Sec  MemoryLimit:16MBSubmit:803  Solved:225[Submit][Status][WebBoard]Description所谓N阶魔方阵,是一个N*N的方阵,其元素由1到N^2组成,且方阵每行每列以及对角线的元素和相等。如三阶魔方阵:816357492魔方阵的规律如下:  从1~N*N的各个数依次如下规则存放:   (1)1在第一行中间一列;    (2)每一个数存放的行比前一个数的行数减一,列数加一(如上的三阶方阵5在4的上一行,后一列);    (3)如果上一个数在第一行,则下一个数在

2、最后一行,列数加一;    (4)如果上一个数在最后一列,则下一个数在第一列,行数减一;    (5)如果按上述规则确定的位置已经有数,或上一个数在第一行第N列,则下一个数放在上一个数的正下方。Input输入包含多组数据,每组为一个小于100的正奇数。Output对于每个输入的N,输出N阶魔方阵;两组数据之间用一个空行分隔。方阵中每行每两个数之间有一个空格,行首和行末没有多余的空格。SampleInput3SampleOutput816357492HINTAppendCode#include #include int

3、a[101][101]={0}; inti,j,k; longn,m; intyd() {     if(i<1)         i=n;       if(i>n)         i=1;       if(j<1)         j=n;       if(j>n)         j=1; } intmain() {         while(scanf("%ld",&n)!=EOF)     {     memset(a,0,sizeof(a));     a[1][n/2+1]=1;     m=n*n;       i=1;j=n/2

4、+1;     for(k=2;k<=m;k++)       {       if(i==1&&j==n)          {          i++;          a[i][j]=k;          continue;          }       if(i==1)         {         i=n;         j++;         }       elseif(j==n)         {         i--;         j=1;         }       else        {     

5、    i=i-1;         j=j+1;         }       if(a[i][j]==0)         a[i][j]=k;       else        {         i=i+1;         j=j-1;         i++;         a[i][j]=k;         }       }     for(i=1;i<=n;i++)       {       for(j=1;j<=n;j++)         {         if(j==1)           printf("%ld",

6、a[i][j]);         else          printf("%ld",a[i][j]);         }       printf("");       }     printf("");     }         return0; }

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。