본문 바로가기
프로그래밍/함수형 프로그래밍

C# 함수형으로 구현한 팩토리얼 함수

by bantomak 2024. 3. 4.

재귀로 구현한 팩토리얼

using System;

class Program
{
    static void Main(string[] args)
    {
        var input = Console.ReadLine();
        var num = Int32.Parse(input);

        Console.WriteLine($"{num}! result: {Factorial(num)}");
    }

    static long Factorial(int n)
    {
        if (n <= 1)
        {
            return 1;
        }

        return n * Factorial(n - 1);
    }
}

 

함수형으로 구현한 팩토리얼

Linq에서 지원하는 Range와 Aggregate를 이용하면 함수형으로 팩토리얼을 구현할 수 있다.

 

using System;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Insert Factorial Number (Functional Approach)");

        var input = Console.ReadLine();
        var num = Int32.Parse(input);

        Console.WriteLine($"{num}! result: {NewFactorial(num)}");
    }

    static int NewFactorial(int num)
    {
        var arr = Enumerable.Range(1, num);
        var result = arr.Aggregate((x, y) => x * y);

        return result;
    }
}

 

 

댓글