백준 10872번 팩토리얼 문제풀이
https://www.acmicpc.net/problem/10872
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include<iostream> using namespace std; int fact(int N) { if (N <= 1) { return 1; } return N * fact(N - 1); } int main() { int N; cin >> N; cout << fact(N); } | cs |
만약 재귀로 풀었는데 시간초과 에러가 나는 경우.
if (N == 1) { return 1; }
루프 탈출 조건이 N==1로 해서 그럴 것입니다
입력이 0부터 받아지기 때문에, 조건문을 N==1로 하면 무한루프에 빠지게 되므로 조건문을 N<=1로 해주어야 합니다.
'백준 문제풀이 (C++) > 재귀함수' 카테고리의 다른 글
[재귀함수] 10870번 피보나치 수 5 풀이 c++ (0) | 2020.08.15 |
---|