Вот пример рекурсивной функции факториала Excel VBA:
Function RecursiveFactorial(n As Long) As Long
If n = 0 Then
RecursiveFactorial = 1
Else
RecursiveFactorial = n * RecursiveFactorial(n - 1)
End If
End Function
Эта функция вычисляет факториал заданного числа nс помощью рекурсии. Если nравен 0, функция возвращает 1 (поскольку факториал 0 определяется как 1). В противном случае он рекурсивно вызывает себя с n - 1в качестве аргумента и умножает результат на n.
В качестве альтернативы вы можете использовать итеративный подход для вычисления факториала без рекурсии. Вот пример:
Function IterativeFactorial(n As Long) As Long
Dim result As Long
result = 1
If n >= 0 Then
For i = 1 To n
result = result * i
Next i
End If
IterativeFactorial = result
End Function
В этом итеративном подходе мы инициализируем переменную resultзначением 1. Затем мы используем цикл для умножения resultна каждое число от 1 до n. Наконец, мы возвращаем вычисленное значение факториала.