09/01/08 16:54
Piojolopez
Salve ragazzi sto creando di fare un risolutore di sudoku per un esame, di seguito vi scrivo la mia funzione di risoluzione, la cosa che non riesco a capire è come poter correttamente scrivere la ricorsione perkè in effetti, considerando che io la matrice del sudoku la memorizzo nell'array board, e parto a risolvere dall'ultimo elemento di essa, quando arrivo al passo d=-1 ossia quando l'array è completoentro nel primo if stampo quello che devo stampare ma poi in effetti nonostante il return in effetti non esce dalla funzione ma rimane ancora dentro e passa all'if(verita[d]) come mai???
void solve (int d) { if (d == -1) { cout<<"FINISH"<<endl; for(int i=0;i<81;i++) cout<<board[i]<<endl; return ; } if (verita[d]) solve(d-1); else { for (int k=1 ; k <= 9 ; k++) { board[d] = k; if (check(d)) solve(d-1); else backs++; } board[d] = 0; } }
aaa