Для того, чтобы значение-инциализатор НЕ влияло на результат.
При сложении переменная-сумматор инициализируется нулём:
x + 0 == x
При умножении переменная-мультипликатор инициализируется единицей:
x * 1 == x
Функция factorial правильна для любых n >= 0, но функция fact ошибочна для n == 0: factorial(0) == 1 (правильно), fact(0) == 0 (ошибка).
Вот этот код :
def factorial(n):
factorial = 1
for i in range(1,n + 1):
factorial *= i
return factorial
print(factorial(5))
Кто может объяснить мне почему переменной factorial присвоено значение 1?
К примеру к коду который я оставлю ниже, у меня нет никаких вопросов. Но на том что выше, я реально надолго завис. Если можно, объясните все последовательно и развернуто.
def fact(n):
number = n
factorial = number
for i in range(1, number):
factorial *= i
print(factorial)
fact(int(input()))