Мне нужна помощь, чтобы исправить очень простую атаку грубой силой на набор чисел 1 = 9. Моя цель состоит в том, чтобы решить доску судоко, где строка заполнена 8 числами, так что в строке может быть только один номер. Единственный способ найти это - присвоить номер отсутствующей ячейке, а затем сравнить его с любым другим номером в строке. Я действительно близок к решению, но результат всегда равен 1. Вот фрагмент кода, с которым у меня возникают проблемы: Я обновил код, чтобы теперь он складывал все числа и вычитал их от 45 до найти правильный номер. Это все еще не возвращает правильный номер. Возвращает 423 (с пропущенным числом 6).
int radd1=deduct[0][0]+deduct[0][1]+deduct[0][2]+deduct[0][3]+deduct[0][4]+deduct[0] int test=0;
if (radd1==8) {
for (int control=0; control<9; control++) {
if (dash[0][control]=='_') {
empty=control;
}
}
for (int control2=0; control2<9; control2++) {
if (control2!=empty) {
test=test+dash[0][control2];
}
}
cout << test << endl;
}
Дополнительная информация:
Все решение основано на одном 9x9 символе, заполненном числами, чтобы идти в соответствующие места. Этот символ называется dash[9][9]
.
Символ deduct[9][9]
является дубликатом dash[9][9]
за исключением того, что вместо действительного числа, которое идет туда, есть 1
. Это так, чтобы я мог сложить целую строку и, если она равна 8
, выполнить мою простую грубую силу (если это правильный термин), чтобы найти последнее девятое число. empty
является инт. Он хранит (в данном случае) номер столбца, который не имеет номера.
Найдите какие-нибудь проблемы?