본문 바로가기
공부/코딩테스트

백준: 10872번 팩토리얼 (Python3)

by 혼밥맨 2022. 7. 24.
반응형

백준: 10872번 팩토리얼 (Python3)

팩토리얼 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB 119962 61873 51015 51.897%

문제

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

입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.

출력

첫째 줄에 N!을 출력한다.

예제 입력 1

10

예제 출력 1

3628800

예제 입력 2

0

예제 출력 2

1

힌트

recursion과 for loop의 효율은 비슷하다. 결론은 둘 다 안 좋다. 피할 수 있으면 피하자! 필요할 때에만 쓰자. For loop이 조금 더 낫지 않을까 기대했지만 O complexity는 같은가 보다.

답안 (For loop)

1
2
3
4
5
6
7
8
n=int(input())
fact=1
if n<=1:
    print(1)
else:
    for i in range(1,n+1):
        fact=fact*i
    print(fact)
cs

답안 (Recursive)

1
2
3
4
5
6
7
def factorial(num):
    if num==0 or num==1:
        return 1
    else:
        return num*factorial(num-1)
 
print(factorial(int(input())))
cs

반응형

댓글