게임 클라이언트 개발/알고리즘 문제

[알고리즘 2단계] Factorial(계승)

주운녕 2020. 7. 21. 11:40

[출처 : Goorm 사이트 - 슬픈 냉면]

문제

팩토리얼은 1부터 n까지의 수를 모두 곱하는 것입니다. n이 양수일 때 n의 팩토리얼은

 

로 나타냅니다.

팩토리얼의 결과를 구하는 프로그램을 작성하십시오.

 

입력

15 이하 양의 정수

출력

팩토리얼의 결과 값

 

 


풀이

  • 재귀식 개념 이해할 때 자주 작성했던 문제였다.
  • 재귀식과 반복문 형식으로 풀 수 있다.

재귀식과 반복문 형식으로 작성할 수 있다.

이와 비슷한 문제로 저번에 풀어본 피보나치 수열 문제가 있다.

 

재귀식

//재귀식 함수로 작성
#include <stdio.h>
unsigned long long fac(int);
int main() {
	unsigned long long n;
	scanf("%lld", &n);
	printf("%lld", fac(n));
}
unsigned long long fac(int n){
	if(n==1)	return 1;
	return n*fac(n-1);
}

 

반복식

//반복문 형식으로 작성
#include <stdio.h>

int main() {
	unsigned long long n, result=1;
	scanf("%lld", &n);
	for(int i=1; i<=n; i++){
		result *= i;
	}
	printf("%lld", result);
}

결과


* 개인적인 학습 목적으로 작성한 글이기에 내용에 잘못된 정보가 있을 수 있습니다.

* 문제 출처 - level.goorm.io/exam/43192/factorial-계승/quiz/1