Để tính giai thừa trong C#, bạn có thể sử dụng bất kỳ cách nào trong ba phương pháp sau:
Tính giai thừa với vòng lặp for
Ví dụ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace factorial
{
class Test
{
static void Main(string[] args)
{
int i, res;
int value = 5;
res = value;
for (i = value - 1; i >= 1; i--)
{
res = res * i;
}
Console.WriteLine("\nFactorial of " + value + " = " + res);
Console.ReadLine();
}
}
}
Kết quả
Factorial of 5 = 120
Tính giai thừa với vòng lặp while
Ví dụ
using System;
namespace MyApplication
{
class Factorial
{
public int display(int n)
{
int res = 1;
while (n != 1)
{
res = res * n;
n = n - 1;
}
return res;
}
static void Main(string[] args)
{
int value = 5;
int ret;
Factorial fact = new Factorial();
ret = fact.display(value);
Console.WriteLine("Value is : {0}", ret);
Console.ReadLine();
}
}
}
Kết quả
Value is : 120
Tính giai thừa bằng đệ quy
Ví dụ
using System;
namespace MyApplication
{
class Factorial
{
public int display(int n)
{
if (n == 1)
return 1;
else
return n * display(n - 1);
}
static void Main(string[] args)
{
int value = 5;
int ret;
Factorial fact = new Factorial();
ret = fact.display(value);
Console.WriteLine("Value is : {0}", ret);
Console.ReadLine();
}
}
}
Kết quả
Value is : 120