九宫格

中国古代就有关于填写填写九宫格的口诀:
九宫之义,法以灵龟,二四为肩,六八为足,左三右七,戴九履一,五居中央。
那么九宫格就为:
4 9 2
3 5 7
8 1 6
或:
2 9 4
7 5 3
6 1 8
填写九宫格的口诀:
1 居上行正中央,依次斜填切莫忘,上出框界往下写,右出框时左边放,重复便在下格填,出角重复一个样。
1 居上行正中央——数字 1 放在首行最中间的格子中;
依次斜填切莫忘——向右上角斜行,依次填入数字;
上出框界往下写——如果右上方向出了上边界,就以出框后的虚拟方格位置为基准,将数字竖直降落至底行对应的格子中;
右出框时左边放——同上,向右出了边界,就以出框后的虚拟方格位置为基准,将数字平移至最左列对应的格子中;
重复便在下格填——如果数字{N}右上的格子已被其它数字占领,就将{N+1} 填写在{N}下面的格子中;
出角重复一个样——如果朝右上角出界,和“重复”的情况做同样处理。
这里写图片描述
九宫格(3阶幻方)不止这一种填法,只要间1放于四个边格的正中,向幻方外侧依次斜填其余数字;若出边,将数字另一侧;若目标格已有数字或出角,回一步填写数字,再继续按一开始的相同方向依次斜填其余数字。
(说简单点:就是将上图的九宫格旋转一圈产生的四个方向上的幻方,和将上图的九宫格先水平翻转,再旋转一圈产生的四个方向上的幻方)
3阶幻方的填法如下8种:
第一种:
8 1 6
3 5 7
4 9 2
第二种:
6 1 8
7 5 3
2 9 4
第三种:
4 9 2
3 5 7
8 1 6
第四种:
2 9 4
7 5 3
6 1 8
第五种:
6 7 2
1 5 9
8 3 4
第六种:
8 3 4
1 5 9
6 7 2
第七种:
2 7 6
9 5 1
4 3 8
第八种:
4 3 8
9 5 1
2 7 6

java里面实现的代码如下:


import java.util.Scanner;

public class JiuGongGe {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要计算的九宫格的维数:");
        int x = sc.nextInt();
        int h = 0;
        int l = x / 2;// 让1在第一行中间的位置
        int a[][] = new int[x][x];
        for (int i = 1; i <= x * x; i++) {
            a[h][l] = i;
            h--;
            l++;
            if (h < 0 && l >= x) {
                h++;
                l--;
                h++;
            } else if (h < 0) {
                h = x - 1;
            } else if (l >= x) {
                l = 0;
            } else if (a[h][l] > 0) {
                h++;
                l--;
                h++;
            }
        }
        System.out.println("计算结果如下:");
        for (int j = 0; j < x; j++) {
            for (int k = 0; k < x; k++) {
                System.out.print(a[j][k] + " ");
            }
            System.out.println();
        }

    }
}

运行的结果如图:
这里写图片描述
这里写图片描述
注:此文章并非原创是在网上找到,自己整理出来的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值