Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Computing factorial of an integer with recursion and iteration
//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x86 #include <iostream> long long rec_factorial(int num) { if (num == 0 || num == 1) { return 1; } else if (num < 0) { num = abs(num); // could still be written as num *=-1; return -1*(num*rec_factorial(num - 1)); } else { return num*rec_factorial(num - 1); } } // factorial without using recursion long long iter_factorial(int num) { long long fac{ 1}; if (num == 0 || num == 1) { return 1; } else if (num < 0) { num = abs(num); for (int i = 1; i <= num; i++) { fac *= i; } } else { for (num; num >= 1; --num) { // fac *= num; } } return num < 0 ? -1 * fac : fac; } int main() { int num1{5}; int num2{-5}; std::cout << num1<< "! (using recursion) = " << rec_factorial(num1) << std::endl; std::cout << num1<< "! (using iteration) = " << iter_factorial(num1) << std::endl; std::cout << num2<< "! (using recursion) = " << rec_factorial(num1) << std::endl; std::cout << num2<< "! (using iteration) = " << iter_factorial(num1) << std::endl; // i expected a -120 for -5!. Why don't i have it? return 0; }
run
|
edit
|
history
|
help
0
constexpr internal error
#7
multiply linked list numbers
bitfields_msvc
Number of paths in matrix
#22.1
pi
Code
boost::asyc fail with error C2280: attempting to reference a deleted function
hangman