Почему факториал уходит в нуль?
Вы можете определить это самостоятельно с помощью пошаговой отладки:Ставите breakpoint на первой строке в функцииЗапускаете приложение в режиме отладчикаВыполняете по одной инструкции (step to next instruction)Смотрите значения всех промежуточных переменных в каждый момент времени
Так можно найти момент, в который значение становится неверным, и определить причины, которые к этому привели.
Эти задачи решаются не через факториал, а через рекуррентные соотношения. Ты просто попал в ловушку для новичков. Они видят, что там факториал и начинают решать через факториал.