백준/단계별

백준 10872 C#) 팩토리얼

alpacadabra 2022. 5. 12. 00:07

n!은 1부터 n까지의 자연수를 모두 곱한 수를 의미한다. 참고로 0!은 1이다.

 

int fac(int n)
{
    if (n == 0)
        return 1;
    else
        return n * fac(n - 1);
}

int n = int.Parse(Console.ReadLine());
Console.Write(fac(n));

 

팩토리얼과 피보나치는 재귀를 처음 접하는 사람들에겐 정말 안성맞춤인 문제들이다.

점화식이 어렵지 않아 다양한 변형 문제들을 풀어보면서 자연스레 반복문으로 바꿔보기도 하고 mod 연산이나 메모이제이션 등을 익힐 수도 있다.

위 문제는 입력이 한 줄만 주어지기 때문에 따로 메모이제이션은 필요 없다.

 

반복문으로 바꿔쓴다면 아래 코드가 될 것이다.

 

int n = int.Parse(Console.ReadLine());
int ans = 1;

for (int i = 1; i <= n; i++)
{
    ans *= i;
}

Console.Write(ans);