Para algunos problemas es util tener funciones que se llamen a ellas mismas ,una funcion recursiva es una funcionque se llama a si misma, ya sea directa o indirectamente, atraves de otra funcion.para este caso se desea resolver de manera recursiva el factorial de un entero no negativo n, que se escribe !n(que se pronuncia "n factorial"), es el producto
n.(n-1) . (n.-2)....1
donde 1! es igual a 1 y 0! se define como 1, por ejemplo. 5! es el producto de 5.4.3.2.1, que es igual a 120.
El factorial de un entero, number, mayor o igual que 0, pude calcularse iterativamente(no recursivamente) empleando el ciclo for como sigue:
factorial = 1;
for(int counter = number; counter >= 1; counter++)
factorial *= Counter;
Mediante la siguiente relacion se llaga a una definicion recursiva de la funcion factorial
n!= n.n(n-1)!
Nota:
Tipos de datos comparados en diferentes lengaujes
C++ C#
---------------------------------------------------------------
4 bytes sin signo = unsigned int y unsigned long = uint
----------------------------------------------------------------
mas infomacion : Tipos de datos comparados