»терационна¤ факториальна¤ реализаци¤

я нашел несколько итерационных решений в сети дл¤ определени¤ факториала из n. ќни выгл¤д¤т примерно так:

int Factorial(int number)
{
   int factorial = 1;

   for (int i = 1; i <= number; i++)
      factorial *= i;

   return factorial;
}

Ќе правда ли Factorial(0) = 1и Factorial(1) = 1? ѕоэтому переменна¤ счетчика внутри цикла for должна начинатьс¤ с 2, так как все, что ниже нее, даст 1 .

   for (int i = 2; i <= number; i++)
      factorial *= i;

≈сть ли причина, по которой они использовали 1 в качестве стартового номера дл¤ счетчика?

algorithm,

2

Ответов: 2


3 прин¤т

Ёто не имеет значени¤ - 1 или 2 будут работать, поскольку умножение на 1 ничего не делает. ќднако большинство циклов начинаютс¤ с 0 или 1, и это следует за шаблоном.  роме того, определение факториала часто указываетс¤ как произведение всех положительных целых чисел до n, поэтому это включает в себ¤ один. ѕо сути, 1, эстетически, ¤вл¤етс¤ лучшей отправной точкой.


ƒл¤ итерационных функций в python:

def iterative_factorial(n):
    x = 1
    for i in range(2,n+1):
        x *= i
    return x
print(iterative_factorial(n))
алгоритм,
Похожие вопросы