Factorial

Implement factorial function

Test:

        [TestMethod]
public void TestFactorial()
{
int result = Factorial.Calc(3);
Assert.AreEqual(6, result);

int result1 = Factorial.Calc(5);
Assert.AreEqual(120, result1);
}




Solution:

    public class Factorial
{
public static int Calc(int number)
{
if (number > 0)
{
return number*Calc(number - 1);
}
return 1;
}
}

Comments

  1. for number >= 13 your function will return an incorrect value.
    However one could say that this factorial is by mod 2^32, then while loop is preferable, because of stackoverflow.

    public int factorial(int n){
    int res = n--;
    while(n > 1){
    res *= n--;
    }
    return res;
    }

    ReplyDelete

Post a Comment