코딩테스트 & 문제 풀이

[C]백준_10872 : 팩토리얼

Hicecream 2023. 4. 21. 00:38

2022년 5월 23일에 작성됨

 

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

 

10872번: 팩토리얼

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

www.acmicpc.net

 

 

문제 분석

반복문을 사용해서 팩토리얼을 구한다. 팩토리얼은 예를 들어 4! = 1 x 2 x 3 x 4이다.

 

 

소스 코드 (⭕)

#include <stdio.h>

int main(void)
{
	int num, i;
	int result = 1;

	scanf("%d", &num);

	for (i = 1; num >= i; i++)
		result = result * i;

	printf("%d", result);

	return 0;
}

 

코드 분석

for (i = 1; num >= i; i++)
	result = result * i;

예를 들어 num을 4라고 입력하면 i는 1부터 4까지 이다.

result(a) = result x 1
result(b) = result(a) x 2 = result x 1 x 2
result(c) = result(b) x 3 = reuslt x 1 x 2 x 3
result(d) = result(c) x 4 = result x 1 x 2 x 3 x 4

처음 result는 1로 지정해 주었기 때문에 result(d)를 출력하면 1 x 1 x 2 x 3 x 4 = 24 = 4!이 된다.

 

 

 

end

반복문에서 값이 변하는 과정을 직접 자세하게 분석해보니 반복문의 원리와 구조가 이해가 되기 시작한다. 조금 더 난이도 있는 반복문 코드를 만들어 보면서 반복문을 확실하게 이해하고 싶다.