Perhaps it's recursion where Mecnels is struggling with.
A very easy example of an recursive function:
Code:
int fac (int n)
{
if (n == 1)
return 1;
else
return (n * fac (n -1));
}
Desiging a recursive function consists of two steps. First there must be an end-step.
n! = n x (n -1) x (n-2) x .. x 2 x 1
You can see, if (n == 1), then the end is reached. In each other case, you have to perform the recursion step. In this example it is easy to see that:
n! = n x (n - 1)!
n! = n x (n - 1) x (n - 2)!
So the recursion step is:
n x (n - 1)!
Or in C:
n x fac (n - 1)