Factorial: Difference between revisions

Added C implementation for negative inputs to factorial functions.
(Added C implementation for negative inputs to factorial functions.)
Line 1,037:
result *= i;
return result;
}
}</lang>
 
/*Handles negative n, Abhishek Ghosh, 1st November 2017*/
 
int factorialSafe(int n) {
int result = 1;
if(n<0)
return -1;
for (int i = 1; i <= n; ++i)
result *= i;
return result;
}
}</lang>
=== Recursive ===
<lang c>int factorial(int n) {
return n == 0 ? 1 : n * factorial(n - 1);
}
}</lang>
 
/*Handles negative n, Abhishek Ghosh, 1st November 2017*/
 
int factorialSafe(int n) {
return n<0 ? -1 : n == 0 ? 1 : n * factorialRec(n - 1);
}
}</lang>
 
=== Tail Recursive ===
Line 1,047 ⟶ 1,066:
<lang c>int fac_aux(int n, int acc) {
return n < 1 ? acc : fac_aux(n - 1, acc * n);
}
 
/*Handles negative n, Abhishek Ghosh, 1st November 2017*/
 
int fac_auxSafe(int n, int acc) {
return n<0 ? -1 : n < 1 ? acc : fac_aux(n - 1, acc * n);
}
 
503

edits