코딩/백준 문제 (브론즈)

[백준/10872/C언어] 팩토리얼 _ 풀이

룻밤 2023. 10. 25. 22:59

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
}