gpt4 book ai didi

java - 具有递归和回溯功能的数独求解器

转载 作者:行者123 更新时间:2023-11-30 08:48:06 26 4
gpt4 key购买 nike

我正在尝试使用递归和回溯编写数独解算器。但是我的代码有一些问题,它总是返回 false。我尝试调试,它调用 next(int row, int col) 方法直到第二行,第六列,然后它停止并开始回溯。问题是回溯一直持续到我的数独游戏中的第一个单元格,然后它返回 false。它不会将单元格编号替换为其他单元格编号。

这是我的代码...我错过了什么吗?

/** Calls solve for the next cell */
private boolean next(int row, int col) {
if (col < 8)
return solve(row, col + 1);
else
return solve(row + 1, 0);
}

public boolean solve(int row, int col) {
if (row > 8) {
return true;
}
if (model[row][col] != 0) {
if (isSafe(row, col, model[row][col]))
return next(row, col);
}
for (int value = 1; value < 10; value++) {
if (isSafe(row, col, value)) {
model[row][col] = value;
return next(row, col);
}
}
return false;
}

最佳答案

尝试在return false之前添加model[row][col] = 0;;

关于java - 具有递归和回溯功能的数独求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32121657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com