Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужен рабочий код по Python

Линар Super Ученик (2), на голосовании 1 год назад
Задача на программирование
Посчитайте факториал числа n! по формуле ниже:


!
=
1

2

3

4

.
.
.


n!=1∗2∗3∗4∗...∗n

Например для входного числа 5 алгоритм расчета следующий:

5
!
=
1

2

3

4

5
=
120
5!=1∗2∗3∗4∗5=120

Sample Input 1:

5
Sample Output 1:

120
Sample Input 2:

0
Sample Output 2:

1
Sample Input 3:

1
Sample Output 3:

1
Sample Input 4:

2
Sample Output 4:

2
Голосование за лучший ответ
S.H.I. Оракул (73791) 1 год назад
 n = int(input()) 
factorial = 1
for i in range(1, n + 1):
factorial *= i
print(factorial)
Sergey Diordiy Мастер (1091) 1 год назад
 def factorial(x):
if x == 0:
return 1
return x * factorial(x - 1)
не соник но тейлз Гуру (3442) 1 месяц назад
Вот решение задачи на Python с подробным объяснением:

def factorial(n):
# Базовые случаи
if n == 0:
return 1
elif n < 0:
raise ValueError("Факториал определен только для неотрицательных чисел")

# Инициализация результата
result = 1

# Умножение всех чисел от 1 до n
for i in range(1, n + 1):
result *= i

return result

# Примеры использования:
print(factorial(5)) # 120
print(factorial(0)) # 1
print(factorial(1)) # 1
print(factorial(2)) # 2
Объяснение решения:

Алгоритм:
Если n = 0, возвращаем 1 (по определению 0! = 1)
Если n < 0, выбрасываем ошибку
Иначе умножаем все числа от 1 до n
Особенности:
Используем цикл for для перемножения чисел
Результат храним в переменной result
На каждой итерации умножаем текущее число на накопленный результат
Альтернативное рекурсивное решение:
def factorial_recursive(n):
if n == 0:
return 1
return n * factorial_recursive(n - 1)
Важные моменты:
Факториал растет очень быстро
Для больших n может потребоваться использование больших чисел
При n > 20 результат уже не помещается в стандартный int
Оптимизация:
Можно использовать memoization для хранения промежуточных результатов
Для больших чисел стоит использовать библиотеку math с функцией factorial
Проверка корректности:
Факториал всегда положительный
Факториал целого неотрицательного числа всегда целое число
0! = 1 по определению
Это базовое решение, которое можно модифицировать под конкретные требования, например, добавив обработку больших чисел или оптимизацию для часто вызываемых значений.
Похожие вопросы