>>538
int n = factorial(3);

の3はマジックナンバーなのでは?