[C]백준_10872 : 팩토리얼

Alal11·2022년 5월 23일
0
post-thumbnail

출처

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


문제

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


입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.


출력

첫째 줄에 N!을 출력한다.


➡️문제 분석

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


➡️코드(⭕)

#include <stdio.h>

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

	scanf_s("%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

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

0개의 댓글