幻方(dfs+回溯)

本文探讨了如何使用深度优先搜索(DFS)结合回溯算法解决4阶幻方问题。幻方是一种数学游戏,要求填入特定数量的数字到方阵中,使每行、每列及对角线上的数字和均相等。文章通过实例展示了如何填充数字以满足条件,并求解出缺失的数字,特别是星号(*)所代表的数字。
摘要由CSDN通过智能技术生成

幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等。
欧洲最著名的幻方是德国数学家、画家迪勒创作的版画《忧郁》中给出的一个4阶幻方。他把1,2,3…16这16个数字填写在4×4的方格中。
如下图所示,即:

16 ? ?13
? ? 11 ?
9 ? ? *
?15 ? 1

表中有些数字已经显露出来,还有些用 ?和 * 代替。
请你计算出 ? 和 * 所代表的数字。并把 * 所代表的数字作为本题答案提交
在这里插入图片描述

import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedList;

public class Solution {
   
    public static void main(String[] args) {
   
        String[][] chars = new String[][]{
   
                {
   "16","?","?","13"},
                {
   "?","?","11","?"},
                {
   "9","?","?","*"},
                {
   "?","15","?","1"}
        };
        res = 0;
        xing = new int[2];
        flag = new boolean[chars.length][chars[0].length];
        set = new HashSet<>();
        list = new LinkedList<>();
        for (int i = 0; i < chars.length; i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值