我有这个骑士的旅行问题,我必须解决。我必须输入一个NxN矩阵和骑士的坐标,其中(1,1)是左下角的元素。现在该程序正常工作,但我的问题是该任务表明可以有许多输入。这就是为什么我在主函数中添加了一个while循环(连续输入并解决它们,但是在第一次输入之后,程序不再让我在控制台中写入(就像它阻止了),我唯一能做的就是停止控制台。你能帮我解决一下我的问题吗?先谢谢。
data = tidyr::gather(data = iris, variable, value, -Species)
ggplot(data, aes(y = value, x = variable, fill = Species)) +
geom_boxplot(position = "dodge", notch = TRUE) +
ylab("median(x)") +
facet_wrap(~variable, scales = "free", ncol = 2)
编辑:显然我误解了这些条件。矩阵应为2 <1。 n&lt; 10.然而,当我改变条件时,程序对于低于5的矩阵不起作用。任何想法它有什么问题?
答案 0 :(得分:1)
你正在使用bruit-force方法。因此它会遇到无法找到解决方案的情况。
第一次输入后程序不再让我写了
因为nextMove()
在找到解决方案后继续执行。你应该放置旗帜
if (i == n * n)
{
printBoard(n);
global_flag=true;
return;
}
并在
中检查此标记if ((newX >= 0 && newX < n && newY >= 0 && newY < n) && (0 == board[newX]newY]))
{
nextMove(newX, newY, i + 1, n);
if(global_flag) return;
}
在while循环中初始化global_flag=false