https://www.acmicpc.net/problem/10872
10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
풀이
반복문 이용
#include<stdio.h>
int main() {
int n;
scanf("%d", &n);
int fac = 1;
for (int i = 1; i <= n; i++) {
fac *= i;
}
printf("%d", fac);
return 0;
}
n! = n*(n-1)*(n-2)*...2*1
초기값을 1로 잡고 1부터 n값까지 반복문을 돌려서 푼다.
재귀함수 이용
#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
}
'코딩 > 백준 문제 (브론즈)' 카테고리의 다른 글
[백준/2920/C언어] 음계 _ 풀이 (2) | 2024.01.13 |
---|---|
[백준/2475/C언어] 검증수 _ 풀이 (0) | 2024.01.13 |
[백준/4153/C언어] 직각삼각형 _ 풀이 (0) | 2023.09.20 |
[백준/10989/C언어] 수 정렬하기 3 _ 풀이 (0) | 2023.09.11 |
[백준/2577/C언어] 숫자의 개수 _ 풀이 (0) | 2023.09.10 |