728x90
[백준알고리즘] 10872번: 팩토리얼 -Python, C++
팩토리얼 문제다.
입력으로 들어올 수 있는 범위는 0 이상 12 이하이다.
하지만 \(12! = 479,001,600\) 로 int
는 물론 unsigned int
도 범위를 벗어나게 된다.
따라서 결과값을 저장하는 \(factorial\) 변수는 int64_t
로 선언을 해주었다.
예전에 파이썬으로도 통과를 했었는데, C++은 반복문으로 푼 반면 재귀를 사용했길래 그냥 같이 올린다.
#include <iostream>
void solve(void);
int main(void)
{
solve();
}
void solve(void)
{
int n;
std::cin >> n;
int64_t factorial = 1;
for (int i = 1; i <= n; i++)
factorial *= i;
std::cout << factorial;
}
아래는 파이썬 코드다.
def factorial(n):
if not n:
return 1
return n*factorial(n-1)
n = int(input())
print(factorial(n))
잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다
728x90
'algorithm > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] 2798번: 블랙잭 -Python, C++ (0) | 2021.01.20 |
---|---|
[백준알고리즘] 2447번: 별 찍기 - 10 -C++ (0) | 2021.01.19 |
[백준알고리즘] 1002번: 터렛 -Python, C++ (0) | 2021.01.19 |
[백준알고리즘] 3053번: 택시 기하학 -Python, C++ (0) | 2021.01.19 |
[백준알고리즘] 4153번: 직각삼각형 -C++ (0) | 2021.01.18 |