运行我的数独生成器时,经过 27 次堆栈溢出。
void start(int todel){
int number;
for (int x=0; x<9; x++) {
for (int y=0; y<9; y++) {
number = GenN(x, y);
osudoku[x][y]=number;
}
}
replace(todel);
output();
}
int GenZ(int x, int y){
int number;
bool duplication = true;
Randomize();
number = Random(9)+1;
duplication = check(number,x,y);
if (duplication==true){
return GenZ(x,y);
}
else if (duplication==false) {
return number;
}
}
我认为它与这段代码有关。它会生成如下内容:
758 431 629
913 267 485
642 985 317
Stack Overflow
所以我得到了 1/3 的数独。