here is my code:
So here is the issue. If any number below twelve is used, then the program works as expected. Any value above 12 gives me either a large number that is not a correct factorial or it gives me a number that is not correct and has a - sign at the front. I think it much have something to do with the variable type(as you can see I tried to have the function return a 'long' value but I don't think I did that right), but maybe my code is wrong in other places?
#include <iostream>
using namespace std;
long fact(int x);
int main()
{
int num1;
cout << "Hello, please enter a whole number(1, 2, 3...) to find its factorial." << endl;
cout << "Please do not use decimals." << endl;
cout << ":: ";
cin >> num1;
cout << "The number " << num1 << "'s facorial is: ";
cout << fact(num1) << endl;
}
long fact(int x)
{
for(int num = x; num > 1; num--)
{
x = x * (num -1);
}
return x;
}
So here is the issue. If any number below twelve is used, then the program works as expected. Any value above 12 gives me either a large number that is not a correct factorial or it gives me a number that is not correct and has a - sign at the front. I think it much have something to do with the variable type(as you can see I tried to have the function return a 'long' value but I don't think I did that right), but maybe my code is wrong in other places?