• 奇数阶幻方


    package com.lesson2;

    import java.util.Scanner;

    /*
     * 奇数阶幻方
     *  罗伯法口诀:1居上行正中央,依次斜填右上方,上方出格下边放,右边出格左边放,排重便在下格放,右上同出一个样。具体填法如下:

        8    1   6
        3    5   7
        4    9   2

    1写在上行正中间;2斜填右上方时上方出格就写在同列的下边;
    2的右上方填3时右边出格,3就写在同行的左边;
    3的右上方是1排重了,4就写在3的下面;
    依次斜填写好5、6;
    6的右方上方同时出格,7就写在6的下边;
    7的右上方填8时右边出格,8就写在同行的左边;
    8的右上方填9时上方出格,9就写在同列的下边。


     */
    public class MagicSquare
    {
     public static void main(String[] args)
     {
      System.out.println("请输入幻方的阶数:");
      Scanner scanner = new Scanner(System.in);
      int size = scanner.nextInt();
      int mat[][]=new int [size][size];
      int i=0;
      int n=size;
      int j=n/2;
    //  这里的算法设计非常重要;
      for(int k=1;k<=n*n;k++)
      {
       mat[i][j]=k;
       if(k%n==0)
       {
        i=(i+1)%n;
        }
       else
       {
        i=(i-1+n)%n; j=(j+1)%n;
        }
      }

      for(i=0;i<n;i++)
      {
       for(j=0;j<n;j++)
        System.out.print(mat[i][j]+"\t");
       System.out.println();
      }
     }
    }

  • 相关阅读:
    dotnet logging serilog support
    普通索引和唯一索引,应该怎么选择?
    怎么减少行锁对性能的影响?
    全局锁和表锁 :给表加个字段怎么有这么多阻碍?
    Python调用函数模板
    Shell语言开发基础模板
    Python语言开发小工具库
    笔记day02
    笔记day06
    第2周需求
  • 原文地址:https://www.cnblogs.com/penggy/p/7475870.html
Copyright © 2020-2023  润新知