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;
}
}
for number >= 13 your function will return an incorrect value.
ReplyDeleteHowever 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;
}