私は数独ソルバーを書いており、ソルブ関数が機能しています。
bool Sudoku::solve(int row, int col){
while (board[row][col] != 0){
col++;
if (col > 8){
col = 0;
row ++;
}
if (row > 8){
return true;
}
}
for (int number = 1; number <= 9; number++){
board[row][col] = number;
if (check_row(row,number) && check_col(col,number) && check_box(row,col,number)){
int next_row = row;
int next_col = col;
next_col++;
if (next_col > 8){
next_col = 0;
next_row++;
}
if (next_row > 8)
return true;
// return solve(next_row, next_col);
if (solve(next_row, next_col))
return true;
}
}
board[row][col] = 0;
return false;
}
そして、私は何が違うのか本当に理解できません
if (solve(next_row, next_col))
return true;
と
return solve(next_row, next_col);
ただし、2行目では機能が機能しません