title: C Program Factorial Number
signature: cProgramFactorialNumber(n) {
test_code: import 'dart:convert';
  
  // SOLUTION CODE
  // ============================================
  PLACEHOLDER_CODE_BODY
  
  // TESTING CODE 
  // ============================================
  bool validateSolution(int actual, int expected){
      return actual.toString() == expected.toString();
  }
  
  String driver(n, int expected){
      try
      {
          if (validateSolution(PLACEHOLDER_FN_NAME(n), expected)){
              return "PASSED";
          }
          return "FAILED";
      }catch(exception_object){
          return exception_object.runtimeType.toString();
      }
  }
  
  int main() {
  
      print("TEST-0...${driver(
          5, 
          120)
      }");
  
      print("TEST-1...${driver(
          12, 
          479001600)
      }");
  
      return 0;
  }
source_py: def c_program_factorial_number(n):
      return (1 if ((n == 1) or (n == 0)) else (n * c_program_factorial_number((n - 1))))
source_cpp: unsigned int c_program_factorial_number(unsigned int n) {
    if ( n == 0 ) return 1;
    return n * c_program_factorial_number ( n - 1 );
  }