我需要帮助在一组1= 9的数字上修复非常简单的暴力攻击。我的目标是解决一个sudoko板,其中一行填充有8个数字,以便该行上只能剩下一个数字。 我想找到它的唯一方法是为丢失的单元格分配一个数字,然后对照该行上的所有其他数字进行检查。我真的很接近解决方案,但返回值始终为1。这是我遇到问题的代码片段:我更新了代码,现在将所有数字相加并从45中减去找到正确的号码。它仍然没有返回正确的数字。返回423(缺少的数字为6)。 通用标签

更多信息:
整个解决方案基于一个9x9字符,其中填充了数字以放入相应的位置。此字符称为dash[9][9]
通用标记标签char是通用标记标签的副本,只是存在一个通用标记标签,而不是那里的实际编号。这样一来,我可以加起来整行,如果它等于deduct[9][9],请执行简单的蛮力操作(如果这是正确的术语)以找到最后的第九个数字。 dash[9][9]是一个int。它存储(在这种情况下)没有编号的列号。
发现任何问题吗?

有帮助吗?

解决方案

  1. 在添加radd1时使用deduct[0][9]是一个错误,对吧?
  2. dash[0][control3]的比较在一个循环内,因此test的值始终取决于循环的最后一次迭代。(在这种情况下,control2+1对比dash[0][8]。我想如果存在相等性,您就必须打破循环。
  3. 您将control2+'1'分配给dash[0][empty],但以后使用control+1。(不是同一件事)
  4. 条件if (test==1)中的整个赋值和比较感觉不正确,但是我们不能仅从所包含的代码中确定它是否正确。

    有一种更好的方法来查找未使用的数字。我们知道1+2+..+9 = 45的总和,因此您只需要对出现的数字求和,然后减去45就可以得到丢失的数字。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top