Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Как найти факториал в Python: помогите плиз!

  1. Как найти факториал в Python: помогите плиз!

    Привет всем! Пытаюсь разобраться, как найти факториал в Python, но чёт не доходит((. Подскажите разные способы решения, может через рекурсию или циклы, и какой из них лучше. Буду рад любым полезным советам и примерам кода. Заранее спасибо всем!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Самый простой способ — это использовать рекурсию. Вот пример кода на Python:

    Программный код:
    def factorial(n):
    if 
    == 0:
    return 
    1
    else:
    return 
    factorial(n-1)

    print(
    factorial(5))  # Output: 120 
    Если не нужен рекурсивный кошмар, используй цикл:

    Программный код:
    def factorial(n):
    result 1
    for i in range(11):
    result *= i
    return result

    print(factorial(5))  # Output: 120 

  4. Цитата Сообщение от Сказка
    Привет! Самый простой способ — это использовать рекурсию. Вот пример кода на Python:

    Программный код:
    def factorial(n):
    if 
    == 0:
    return 
    1
    else:
    return 
    factorial(n-1)

    print(
    factorial(5))  # Output: 120 
    Если не нужен рекурсивный кошмар, используй цикл:

    Программный код:
    def factorial(n):
    result 1
    for i in range(11):
    result *= i
    return result

    print(factorial(5))  # Output: 120 
    Всё понятно и чётко, бро! Лучше, конечно, с циклами, когда числа большие, а то стеки переполняются.

  5. Есть еще вариант на функциональном стиле, если фишкуешь в таких штуках:

    Программный код:
    import functools

    def factorial
    (n):
    return 
    functools.reduce(lambda xyx*yrange(1n+1), 1)

    print(
    factorial(5))  # Output: 120 
    Так сказать, минималистичный подход))

  6. Цитата Сообщение от NinaReader
    Есть еще вариант на функциональном стиле, если фишкуешь в таких штуках:

    Программный код:
    import functools

    def factorial
    (n):
    return 
    functools.reduce(lambda xyx*yrange(1n+1), 1)

    print(
    factorial(5))  # Output: 120 
    Так сказать, минималистичный подход))
    Ооо, это прям для любителей ламбд и редюсов! Красиво, но кому-то читать тяжело будет.

  7. Рекурсия — это, конечно, по красоте, но реально не всегда оптимально, особенно для больших чисел. Так что в продакшене обычно циклы фигачат. Вот пример:

    Программный код:
    def factorial(n):
    if 
    0:
    return 
    'Invalid input, must be non-negative'
    result 1
    for i in range(11):
    result *= i
    return result

    print(factorial(5))  # Output: 120
    print(factorial(-2)) # Output: Invalid input, must be non-negative 

  8. Цитата Сообщение от Цикада
    Рекурсия — это, конечно, по красоте, но реально не всегда оптимально, особенно для больших чисел. Так что в продакшене обычно циклы фигачат. Вот пример:

    Программный код:
    def factorial(n):
    if 
    0:
    return 
    'Invalid input, must be non-negative'
    result 1
    for i in range(11):
    result *= i
    return result

    print(factorial(5))  # Output: 120
    print(factorial(-2)) # Output: Invalid input, must be non-negative 
    Вписал проверку на отрицательные числа — молодец. Таки да, циклы надёжнее.

  9. В математике факториал — это rass-aж крутая вещь, но Python и так имба. Если не хочешь париться, всегда есть встроенные фишки. Например:

    Программный код:
    import math

    print(math.factorial(5))  # Output: 120 

  10. Цитата Сообщение от Констанция
    В математике факториал — это rass-aж крутая вещь, но Python и так имба. Если не хочешь париться, всегда есть встроенные фишки. Например:

    Программный код:
    import math

    print(math.factorial(5))  # Output: 120 
    Ага, импортнул, вызвал ф-цию и релаксируй, кайф! Эх, всегда бы так просто все решалось.

Страница 1 из 2 12 ПоследняяПоследняя