• 奇数阶幻方


    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();
      }
     }
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    SQL compute by 的使用
    C# DES加密/解密字符串
    SET NOCOUNT { ON | OFF }
    SQL Server游标的使用 转
    SQL优化的一些总结
    精确获取时间(QueryPerformanceCounter)测试程序效率
    ajax的使用原理
    jq三级导航菜单可修改为二级、四级等导航菜单
    本地搭建PHP环境
    固定在屏幕底部的层
  • 原文地址:https://www.cnblogs.com/penggy/p/4786515.html
Copyright © 2020-2023  润新知