Prerequisities

How the sudoku algorithm works

The short answer: The program tries all possible values for each cell, and the combination which obeys all sudoku's rule is displayed as the solution.

The long answer:

Recursive Functions

Recursive functions are functions that call themselves in their function body. Basically:

void func(){

    //do something

    func();    //function calling itself

}


It doesn't take a genius to realize the above piece of code would result in an infinite loop (Not a genius? Just nod your head). However, with an appropriate check, recursive functions can actually be useful.

long factorial(int n){

    if (n == 0)

        return 1;

    else

        return (n * factorial(n-1));

}