[boj] (b3) 10872 팩토리얼

강신현·2022년 2월 5일
0

문제 링크

팩토리얼은 단순 for문으로도 구할 수 있지만, 재귀를 사용해 구해보자

try1

#include <iostream>

using namespace std;

int factorial(int N){
    if(N==1) return 1;
    else return N * factorial(N-1);
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N;
    cin >> N;

    cout << factorial(N);

    return 0;
}

-> 시간초과

입력이 0부터 이기 때문에 if(N==1) return 1; 로 하면 무한루프를 돌아 시간초과가 나옴

try2

#include <iostream>

using namespace std;

int factorial(int N){
    if(N<=1) return 1;
    else return N * factorial(N-1);
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N;
    cin >> N;

    cout << factorial(N);

    return 0;
}
profile
땅콩의 모험 (server)

0개의 댓글

관련 채용 정보