Ваш result
предположительно инициализирован на 0
(например, int result = 0;
).
Что происходит, когда вы вводите число меньше 3
, это означает, что factorial-1
меньше 2
, а поскольку мы имеем дело с целыми числами, это означает, что оно не больше 1
. Условием вашего цикла является то, что i
должно быть больше , чем 1
, поэтому вы никогда не входите в свой цикл, и result
никогда не изменяется от его начального значения. Быстрое решение может быть просто изменить i > 1
на i > 0
; умножение на 1
в любом случае не повредит.
Вам также следует инициализировать result
до 1
, поскольку вы не будете вводить свой цикл для значений 0
и 1
, но это нормально, поскольку их факториалы равны 1
.