zoukankan      html  css  js  c++  java
  • Hdu 1998 奇数阶魔方

    奇数阶魔方

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 4629    Accepted Submission(s): 2622

    Problem Description

    一个 n 阶方阵的元素是1,2,...,n^2,它的每行,每列和2条对角线上元素的和相等,这样
    的方阵叫魔方。n为奇数时我们有1种构造方法,叫做“右上方” ,例如下面给出n=3,5,7时
    的魔方.
    3
    8 1 6
    3 5 7
    4 9 2
    5
    17 24 1 8 15
    23 5 7 14 16
    4 6 13 20 22
    10 12 19 21 3
    11 18 25 2 9
    7
    30 39 48 1 10 19 28
    38 47 7 9 18 27 29
    46 6 8 17 26 35 37
    5 14 16 25 34 36 45
    13 15 24 33 42 44 4
    21 23 32 41 43 3 12
    22 31 40 49 2 11 20
    1行中间的数总是1,最后1行中间的数是n^2,他的右边是2,从这三个魔方,你可看出“右
    上方”是何意。

    Input

    包含多组数据,首先输入T,表示有T组数据.每组数据1行给出n(3<=n<=19)是奇数。

    Output

    对于每组数据,输出n阶魔方,每个数占4格,右对齐

    Sample Input

    2

    3

    5

    Sample Output

       8   1   6

       3   5   7

       4   9   2

      17  24   1   8  15

      23   5   7  14  16

       4   6  13  20  22

      10  12  19  21   3

      11  18  25   2   9

    #include<stdio.h>
    int main()
    {
      int n,N;
      scanf("%d",&N);
      while(N--)
      {
      
      scanf("%d",&n);
      int i=0,j=(n-1)/2,c[20][20]={0},a=2;
          c[i][j]=1;
      while(a<=n*n)
      {
        --i;
          ++j;
          if(i<0&&j<=n-1) {i=n-1;c[i][j]=a;}
          else if(j>n-1&&i>=0){j=0;c[i][j]=a;}
          else if(c[i][j]!=0||(i<0&&j>n-1)){i+=2;j-=1;c[i][j]=a;}
          else c[i][j]=a;
          a++;
          }    
              for(i=0;i<=n-1;i++)
            {    
                for(j=0;j<=n-1;j++)
                {
                    printf("%4d",c[i][j]);
                    if(j==n-1)printf("
    ");
                }
            }
    }
      return 0;
    } 
    

      

  • 相关阅读:
    Hibernate 组合主键映射
    Hibernate 对象的生命周期及CRUD操作
    Hibernate *.hbm.xml对象关系映射文件详解
    Hibernate.cfg.xml详解
    hibernate4日志配置
    Hibernate第一个程序
    hibernate-release-4.3.11.Final资源包介绍
    (转)开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引
    redis CONFIG REWRITE介绍
    (转)Linux core 文件介绍与处理
  • 原文地址:https://www.cnblogs.com/zhangliu/p/7063159.html
Copyright © 2011-2022 走看看