programming
Hackerrank 알고리즘 퀴즈 extra long factorials 파이썬 풀이 및 해설
by Kitle · 2020. 08. 07.
Hackerrank 알고리즘 퀴즈 extra long factorials를 python 으로 풀어보겠습니다.
출처 : goto extra-long-factorials problem
깃허브 풀이 소스 보기 : 깃허브 이동
문제요약: 이번 문제는 팩토리얼 결과가 큰 수가 나오는 경우 이 부분을 처리할 수 있는지, 즉 큰 수를 다루는 것을 할 수 있는지 물어보는 퀴즈입니다. 팩토리얼은 잘 아시다시피 n = 5라면 5 * n-1 * n-2 ... * 1 의 결과입니다. 보통 5!로 기술하죠. 1!의 결과는 1입니다.
[부가 설명]
python은 사실 그동안 int 인지 long 인지 크게 신경을 쓰지 않았던 것 같습니다. 그래서 이번 문제를 통해 스터디도 같이 하게 되었네요. python에서 long() 은 있을까요?
python3에서는 없습니다. 왜 일까요. 일단 풀이 보고 해설과 같이 기술하도록 하겠습니다.
[풀이]
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the extraLongFactorials function below.
def extraLongFactorials(n):
if n > 1:
return n * extraLongFactorials(n-1)
else:
return 1
if __name__ == '__main__':
n = int(input())
print(extraLongFactorials(n))
Languages like Java, Python, Ruby etc. can handle big integers, but we need to write additional code in C/C++ to handle huge values.
return n * extraLongFactorials(n-1) if n > 1 else 1