coding_test/BAEKJOON

백준 10872번 C언어 풀이

CodeJin 2021. 8. 17. 22:57

https://www.acmicpc.net/problem/10872

 

10872번: 팩토리얼

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

팩토리얼을 구현하는 문제

 

단계별 풀이의 재귀파트에 들어가기 때문에 재귀함수와 반복문으로 풀어보자.

 

반복문

#include <stdio.h>

// loop solution
int main () {
    int a;
    long long result = 1;

    scanf("%d", &a);
    for (int i = 2; i <= a; i++) {
        result *= i;
    }
}

 

재귀함수

#include <stdio.h>

// Recursive solution
long long fac (int n) {
    if (n <= 1) {
        return 1;
    } else {
        return n * fac(n-1);
    }
}

int main () {
    int a;
    scanf("%d", &a);
    printf("%d", fac(a));
    return 0;
}