题
我需要帮助在一组1= 9的数字上修复非常简单的暴力攻击。我的目标是解决一个sudoko板,其中一行填充有8个数字,以便该行上只能剩下一个数字。 我想找到它的唯一方法是为丢失的单元格分配一个数字,然后对照该行上的所有其他数字进行检查。我真的很接近解决方案,但返回值始终为1。这是我遇到问题的代码片段:我更新了代码,现在将所有数字相加并从45中减去找到正确的号码。它仍然没有返回正确的数字。返回423(缺少的数字为6)。
通用标签
更多信息:
整个解决方案基于一个9x9字符,其中填充了数字以放入相应的位置。此字符称为dash[9][9]
。
通用标记标签char是通用标记标签的副本,只是存在一个通用标记标签,而不是那里的实际编号。这样一来,我可以加起来整行,如果它等于deduct[9][9]
,请执行简单的蛮力操作(如果这是正确的术语)以找到最后的第九个数字。 dash[9][9]
是一个int。它存储(在这种情况下)没有编号的列号。
发现任何问题吗?
解决方案
- 在添加radd1时使用
deduct[0][9]
是一个错误,对吧? - 与
dash[0][control3]
的比较在一个循环内,因此test的值始终取决于循环的最后一次迭代。(在这种情况下,control2+1
对比dash[0][8]
。我想如果存在相等性,您就必须打破循环。 - 您将
control2+'1'
分配给dash[0][empty]
,但以后使用control+1
。(不是同一件事) - 条件
if (test==1)
中的整个赋值和比较感觉不正确,但是我们不能仅从所包含的代码中确定它是否正确。有一种更好的方法来查找未使用的数字。我们知道
1+2+..+9 = 45
的总和,因此您只需要对出现的数字求和,然后减去45就可以得到丢失的数字。
不隶属于 StackOverflow