Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Ba cách khác nhau để tính giai thừa trong C#


Để 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