## Practicing Method with Parameters

In this challenge you need to create a new method called `factorial` which will have one parameter called `n` of type `int`. It should calculate the factorial of the passed value `n` and output the result.

The blueprint of the program is given, fill the missing details to complete the program:

main.cs

1. We had done a factorial related exercise in one of the previous sections but to recap, the factorial of a number is the product of all the numbers up till that number.
For-example the factorial of `5` is `1 x 2 x 3 x 4 x 5` which is `120`, similarly the factorial of `4` is `24`. There are two additional rules:
- Factorial of `0` is `1`;
- Factorial of a negative number is `undefined` so it should output `undefined`;
2. For solving the task, following the following steps:
- Fill in the blank for the `factorial` method with appropriate parameter definition. It expects an integer. Figure out what should be the name of the parameter by reading the method's inner code;
- If the passed argument is `0`, it should show a fixed output which is mentioned in the hints;
- The loop should continue up till (including the number) the passed integer. The `result` variable should be updated with the product of itself with the loop variable. In short: `result *= i`;
- If the input number is negative (invalid), it should output "undefined".
``````
using System;

namespace ConsoleApp
{
internal class Program
{
static void factorial(int n)
{
if(n == 0)
{
Console.WriteLine(1);
}
else if (n > 0)
{
int result = 1;
for (int i = 2; i <= n; i++)
{
result *= i;
}
Console.WriteLine(result);
}
else
{
Console.WriteLine("undefined");
}

}
static void Main(string[] args)
{
factorial(-1);
factorial(0);
factorial(5);
}
}
}
``````

Everything was clear?

Section 6. Chapter 5