输入奇数n,计算并输出n位的魔方阵。
说明:
(1) 魔方阵就是n*n个不同的正整数按方阵排列时,它的每一行,每一列以及沿对角线的几个数的和具有同一性质的方阵。
(2) 由1到n*n个自然数数构成的魔方阵是最基本的,又称为“幻方”,这种方阵的每行、每列和每个对角线上的元素的和全部相等,亦即等于一个常数。该常数是n(n*n+1)/2。
(3) 方法: 首先确定1的位置,通常放在第一行的中间位置; 然后当前自然数的右上方放下一个自然数; 如果当前自然数在第一行但不在最右侧,则下一个自然数在最后一行,列数右移一列; 如果当前自然数在第一行最右侧,则下一个自然数在当前自然数的下侧; 如果当前自然数在其它行的最右侧,则下一个自然数在上一行的最左侧。

解决方案 »

  1.   

    首先(2)我就没看懂~~
    n(n*n+1)/2是怎么推倒的啊???
      

  2.   

    你真的会给分么????我的几个高中同学再CSDN问问题出高分可是从来不结贴的。
    而且这个版的斑竹一个不认识。我只会创建n为奇数的幻方
      

  3.   

    因为有n行,而每行的和x相等,所以n行所有的和为n*x
    又因为磨坊中每个数出现且只出现一次,所以磨坊所有的数之和,及n行之和为1...n*n (显然一共有n*n个数)的相加,及(n*n)*(n*n +1)/2
    由上
    n*x = (n*n)*(n*n +1)/2
    所以x = n(n*n+1)/2
    over
      

  4.   

    HOHO~~~这种简单的菜题上不了NOI的
      

  5.   

    to :Eastunfail(恶鱼杀手) 
      
    你如果不写,也说个大概吧。提醒一下我。这个要求不过分吧,呵呵。