Ваша факторная функция не выполняется правильно. означает факториал, умножение всех цифр, начиная с n до 1 -
(n-1) * (n-2) * ... * (n)
но ваша функция не дает желаемого результата, который вы хотите.
int Factorial(int digit){
factorial = factorial*digit;
return 0;
}
вам нужно изменить эту функцию, чтобы получить факториальное значение числа, вы можете либо перебрать al oop до единицы, либо использовать рекурсивный подход, чтобы получить факториал.
int Factorial(int digit){
int result = 1;
for(int i=n; i>=1; i--){
result *= i;
}
return result;
}
или
int Factorial(int digit) {
if(n <= 1) return digit;
return digit * Factorial(digit-1);
}
Вы можете следовать за потоком , чтобы понять глубину рекурсивной функции, упомянутой выше.