n!을 구하는 함수를 순차적, 재귀적, 템플릿 메타프로그래밍을 이용해서 구현해보라?
순차적 방법
펼쳐두기..
int factorial(int n)
{
int result = 1;
while( n > 0 )
{
result *= n--;
}
return result;
}
아니면,
int factorial(int n)
{
int result = n--;
while( n > 0 )
{
result *= n--;
}
return result;
}
재귀적 방법
펼쳐두기..
int factorial(int n)
{
if( n == 1 )
return 1;
return n * factorial(n-1);
}
템플릿 메타프로그래밍
펼쳐두기..
template<int N>
struct factorial
{
enum{ result = N * factorial<N-1>::result };
};
template<>
struct factorial<1>
{
enum{ result = 1 };
};
댓글 없음:
댓글 쓰기