팩토리얼은 단순 for문으로도 구할 수 있지만, 재귀를 사용해 구해보자
#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; 로 하면 무한루프를 돌아 시간초과가 나옴
#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;
}