/*
魔方阵,古代又称“纵横图”,是指组成元素为自然数1、2…n的平方的n×n的方阵,
其中每个元素值都不相等,且每行、每列以及主、副对角线上各n个元素之和都相等。
输入一个奇数,实现奇数魔方阵。 附:奇数魔方阵的实现方法
(1) 将1填入第一行中间;
  (2) 将每个数填在前一个数的右上方。
  (3) 若该位置超出最上行,则改填在最下行的对应位置;
  (4) 若该位置超出最右列,则该填在最左列的对应行位置;
  (5) 若某元素填在第一行最右列,下一个数填在该数同列的下一行;
   (6) 若某数已填好,但其右上角已填了其他数据,则下一个数填在该数同列的下一行位置。
*/ #include <stdio.h>
#include <math.h> int main(void)
{
int a[][],i,j,n,k,count; scanf("%d",&count);
while(count--)
{
scanf("%d",&n);
for(i=;i<=n;i++)
for(j=;j<=n;j++)
a[i][j]=;
j=n/+;
a[][j]=;
i=; for(k=;k<=n*n;k++)
{
i=i-;
j=j+; if( i== && j==n+ )
{
i=i+;
j=j-;
}
else
{
if(i==)
{
i=n;
}
if(j==n+)
{
j=;
}
} if(a[i][j]==)
{
a[i][j]=k;
}
else
{
i=i+;
j=j-;
a[i][j]=k;
}
} for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
return ;
}

ACM1998的更多相关文章

随机推荐

  1. 纯后台生成highcharts图片有哪些方法?

    比如说,领导抛给你一个需求,把一些数据做成图表,每天通过邮件发送,让领导能在邮件中就看到图片,你会有什么思路呢?本人使用的是phantomjs这个神器,它的内核是WebKit引擎,不提供图形界面,只能 ...

  2. ifdebug

    #if DEBUG 首先,大小写不能写错. 其次,解决方案配置设为:Debug,才会执行该语句,如果在条件里面搭配Debug.Assert等,效果甚佳.而如果要设置为Release模式,就不会执行条件 ...

  3. HDU 4767 Bell(矩阵+中国剩余定理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4767 题意:给出n.求n有多少种划分集合的方式,即bell(n) 思路: #include <i ...

  4. Hearthstone-Deck-Tracker汉化处理技巧

    https://github.com/chucklu/Hearthstone-Deck-Tracker 首先本地需要有自己的远端chucklu以及作者的远端epix37 $ git remote -v ...

  5. Redis cluster学习 & Redis常识 & sort操作

    Redis中的5种数据类型String.Hash.List.Set.Sorted Set. Redis源码总代码一万多行. 这篇文章有一些Redis "常识" http://www ...

  6. Qt之运行一个实例进程

    简述 发布程序的时候,我们往往会遇到这种情况: 只需要用户运行一个实例进程 用户可以同时运行多个实例进程 一个实例进程的软件有很多,例如:360.酷狗- 多个实例进程的软件也很多,例如:Visual ...

  7. LA 4636 (贪心) Cubist Artwok

    题意: 一个由若干小正方体组成的图形,给出它的正视图和侧视图,求满足条件的最少小正方体的个数. 分析: 虽说是一道简单的贪心,可一直没有太好的思路. 又一次可耻地看了别人的题解. http://blo ...

  8. javascript数组详解

    1.数组的一些方法: <script type="text/javascript"> //var arr = [1,2,3,4]; //性能略高 var arr = n ...

  9. UVa 253 Cube paiting

    题意:输入两个骰子,判断是否等价 因为每一个面可以作顶面,共6*4种情况,枚举就可以了 #include<iostream> #include<cstdio> #include ...

  10. svn 提交失败 更新失败 提示 已经锁定

      出现问题的原因:在上传的时候,由于网络掉线,导致svn提交到一半就没有反应了,这个时候我点击了取消,再之后无论是进行 更新还是提交,都提示 已经锁定 解决方法:在项目的空白地方,点击SVN  清理 ...