프로그래밍/C, C++

[C] 백준 10872 팩토리얼

pxatd 2021. 3. 22. 18:05
728x90

문제

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

학습

문제 자체는 쉬운 편이였으나 좋은 알고리즘이란 무엇인가에 대해 고찰해본 후 나는 문제를 푸는 것만이 다가 아니라는 것을 새롭게 알게되었다. 이번과 같은 문제도 여러가지 방법으로 풀 수 있을텐데, 예를들면 내가 작성한 코드 외에도 입력받고 sum으로 더하는 부분을 함수로 작성하는 등이 있다. 

 

조금 쉬운 문제는 여러 방법으로 고안하여 백준(BOJ) 숏코딩 랭커가 될 수 있도록 한번 생각해보아야겠다.

이 문제의 숏코딩 랭커 코드길이는 48B~55B정도 된다. 필자도 코드를 최대한 줄여보려고 했으나 138B가 최대였다..(랭킹으로 따지자면 350등 정도다) 아직 한참 부족하다고 느꼈다. 무튼! 코드를 제출했다고 문제를 푼 것이 아니라 좋은 알고리즘에 도달하려면 어떻게 해야하는지 다양하게 접근해보고자 했던게 좋은 시도였던 것 같다. 

코드

#include <stdio.h>

int main()
{
	int N;
	int sum = 1;
	scanf("%d", &N);
	for (int i = 1; i <= N; i++)
	{
		sum *= i;
	}
	printf("%d", sum);
	return 0;
}
출처

www.acmicpc.net/problem/10872

 

10872번: 팩토리얼

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

www.acmicpc.net

 

728x90