Ok, so Im trying to write a program that computes factorials recursively.

Here is what Ive got (when I asked my teacher for help, he said my factorial.cpp has one key flaw but I cant find it)

Factorial.cpp

Code:
int factorial(int N)
{
   //cout << "into factorial with " << N << endl;
   if ( N < 1 )
       return 1; // base case
   //cout << " not a base case with N = " << N << endl;
   int answer = factorial(N-1);
   //cout << " returning " << answer << " as answer at N = " << N << endl;
   return answer;
}

driveFactorial.cpp
Code:

#include <iostream>
#include <fstream>
using namespace std;
    
#include "factorial.cpp"
     
int main()
{
  int FactForN = 1;
 
  cout << "\n Factorial of what number?  (negative to end) ";

  while ( cin >> FactForN && FactForN > 0)
   {
     int answer = factorial(FactForN);
     cout << "\n The factorial of " << FactForN << " is " << answer << endl;

     cout << "\n Factorial of what number?  (negative to end) ";
  }
}

any help would be appreciated. Thanks!