Я сделал функцию, которая вычисляет факториала числа от 0 до 16 (нет отрицательного и достаточно маленький)C++ факториала с типом данных выдает
но это обыкновение идти мимо n15 любая идея, какой тип данных я должен использовать и где?
long factorial(long num1)
{
long f;
if (num1 >= 0 && num1 <= 16)
{
for (long i = 0; i <=num1; i++)
{
if (i==0) f = 1;
else f=f * i;
}
return f;
}
return 0xFFFFFFFF;
}
Почему 'double'? Предполагается ли это, что это функция Гамма? – 2013-03-03 07:20:27
исправлено. Сначала я тестировал двойники, а затем пошел к длинным, так как я получил более высокий – 2013-03-03 07:21:49
'16!' Должен вписываться в 'long', поэтому тип данных в порядке. Что именно происходит при вводе '15' в функцию? – mgibsonbr