标签搜索

java魔方矩阵

ATAO
2022-01-21 / 1 评论 / 109 阅读 / 正在检测是否收录...
魔方矩阵,就是每行之和、每列之和和对角线之和都相等,下图是其中一种情况。

魔方矩阵
这种题我们就是找规律,可以发现将1填到第一行中间列,下一个数填到右上角(上面越界即到最下面,左右越界同理),当填到行数的整数倍时,下一个数即在此数正下方,即4在3正下方、7在6正下方,其他数全部遵循右上规律。(5阶魔方矩阵规律相同)
代码实现:

public class Test{
    public static void main(String[] args){
        int n = 3;//3阶魔方矩阵
        int[][] array = new int[n][n];
        //x表示行数,y表示列数,初始位置定到首行中间列
        int x = 0;
        int y = n / 2;
        //1-9依次填数
        for(int i = 1; i <= n * n; i++){
            array[x][y] = i;
            //当填到行数整数倍时,下一数在次数正下方,行数加1即可
            if(i % n == 0){
                x++;
            } else{        //其他数遵循右上规律,即行数减1,列数加1
                x--;
                y++;
            }
            //判断行数、列数越界
            if(x < 0){
                x = n - 1;
            }
            if(y == n){
                y = 0;
            }
        }
        //输出
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                System.out.print(array[i][j] + "\t");
            }
            System.out.println();
        }
    }
}
1

评论 (1)

取消
  1. 头像
    chengyong
    Windows 10 · FireFox

    atao is a big dog

    回复