MethodMan

09-30-2002, 04:27 PM

int Factorial(int n)

{

if(n == 1){

return 1;

}

else{

return n * Factorial(n -1);

}

}

The textbook asks, why might Factorial(0) return 0, and to be honest I have no clue. The call trace would look like:

Facorial(0) = 0 * Factorial(-1)

= 0* (-1) * Factorial(-2)...

it would just go into an infinite regress.

The only way I see it returning 0, if it runs out of resources, and somehow returns a 0, or grabs some piece of memory, which could have been a 0.

Any other possibilities?

Thanks

{

if(n == 1){

return 1;

}

else{

return n * Factorial(n -1);

}

}

The textbook asks, why might Factorial(0) return 0, and to be honest I have no clue. The call trace would look like:

Facorial(0) = 0 * Factorial(-1)

= 0* (-1) * Factorial(-2)...

it would just go into an infinite regress.

The only way I see it returning 0, if it runs out of resources, and somehow returns a 0, or grabs some piece of memory, which could have been a 0.

Any other possibilities?

Thanks