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
반복문에서 값이 변하는 과정을 직접 자세하게 분석해보니 반복문의 원리와 구조가 이해가 되기 시작한다. 조금 더 난이도 있는 반복문 코드를 만들어 보면서 반복문을 확실하게 이해하고 싶다.
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[C]코드업_1074 : [기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기1 (2) | 2023.04.22 |
---|---|
[C]코드업_1071 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기1 (0) | 2023.04.22 |
[C]코드업_1070 : [기초-조건/선택실행구조] 월 입력받아 계절 출력하기(설명) (0) | 2023.04.20 |
[C]코드업_1068 : [기초-조건/선택실행구조] 정수 1개 입력받아 평가 출력하기(설명) (0) | 2023.04.19 |
[C]코드업_1065 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝수만 출력하기(설명) (0) | 2023.04.18 |