https://www.acmicpc.net/problem/10872
10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
풀이
#include <stdio.h>
int fac(int n);
int main() {
int n;
scanf("%d", &n);
printf("%d\n", fac(n));
return 0;
}
int fac(int n) { // fac(10)
if (n >= 1)
return n * fac(n - 1); // fac(10) = 10*fac(9)
else
return 1; //n이 0일때는 1
}
팩토리얼은 재귀함수로 구현하면 쉽다.
fac(3) = 3*fac(2)
fac(2) = 2*fac(1)
fac(1) = 1*fac(0)
fac(0) = 1
'코딩 > 백준 문제 (브론즈)' 카테고리의 다른 글
[백준/11943/C언어] 파일 옮기기 _ 풀이 (0) | 2023.08.27 |
---|---|
[백준/11719/C언어] 그대로 출력하기 _ 풀이 (0) | 2023.08.23 |
[백준/3009/C언어] 네 번째 점 _ 풀이 (0) | 2023.08.22 |
[백준/27323/C언어] 직사각형 _ 풀이 (0) | 2023.08.22 |
[백준/2292/C언어] 벌집 _ 풀이 (0) | 2023.08.22 |