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