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;
}
=== 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);
}
=== 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);
}
|