Написать программу которая вычисляет факториал числа введенного с клавиатуры питон

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

HW2_Python / 15_Factorial.py /

Code definitions
Code navigation index up-to-date

  • Go to file T
  • Go to line L
  • Go to definition R
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
25 lines (16 sloc) 581 Bytes

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Вычисление факториала числа n! Уроки программирования С++

# 15. Написать программу получающую набор произведений чисел от 1 до N.
from itertools import accumulate
import operator
N = int ( input ( ‘Введите число: ‘ ))
def get_prods ( N ):
return list ( accumulate ([ x for x in range ( 1 , N + 1 )], operator . mul ))
print ( get_prods ( N ))
# Предыдущий вариант решения
# def get_factorial_list(n):
# fact = 1
# facts = []
# for i in range(1, n+1):
# fact *= i
# facts.append(fact)
# return facts
# print(get_factorial_list(N))
  • Copy lines
  • Copy permalink
  • View git blame
  • Reference in new issue
Читайте также:
Лучшая партнерская программа Aliexpress

Источник: github.com

задача создать функцию , которая принимает неотрицательное число, находит его факториал и возвращает сколько нулей на конце этого факториала [закрыт]

Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 1 год назад .

def factorial(n: int): a = 1 for i in range(1, n+1): a*=i return(a) def trailing_zeros(n: int) -> int: f = factorial(n) f_list=list(f) f_list.reverse() count=0 for i in range(f_list): if i ==0: count+=1 break return count
Отслеживать
задан 2 фев 2022 в 14:18
21 7 7 бронзовых знаков
и в чем вопрос?
2 фев 2022 в 14:20
Вы не приняли ни одного ответа на свои вопросы.
2 фев 2022 в 14:35

Факториал можно найти функцией factorial() из модуля math.

39 Задача: Вычислить факториал при помощи Python

Если это нельзя использовать, то просто нужно перемножить числа от 1 до n, взяв за исключение, что 0!=1. Количество нулей можно просто посчитать циклом, в чем проблема?

2 фев 2022 в 15:11

ежели вам нужен чистый питон, то так и скажите, а то другие люди стараются для вас, а вы даже не помечаете ответ как правильный

2 фев 2022 в 15:41
Вопрос в том что код не работает, задачка на степике, нужен чистый питон
2 фев 2022 в 15:45

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

Вызовем вашу функцию factorial :

factorial(1) = 1 factorial(2) = 1 factorial(3) = 1 factorial(4) = 1 factorial(5) = 1 factorial(6) = 1 factorial(7) = 1 factorial(8) = 1 factorial(9) = 1 factorial(10) = 1

Очевидно функция factorial не считает факториал. Исправим ошибку и пойдём дальше. На этот раз вычислим trailing_zeros(1) :

Traceback (most recent call last): File «/home/sv/desk/stackoverflow/temp.py», line 19, in print(f’trailing_zeros() = ‘) File «/home/sv/desk/stackoverflow/temp.py», line 9, in trailing_zeros f_list=list(f) TypeError: ‘int’ object is not iterable

Читайте также:
Что такое ezvid программа

Ошибка состоит в вызове функции list от числа. Это запрещено в Питоне.

Рекомендую вам запустить и привести в чувство вашу программу на компьютере прежде чем посылать в Степик на проверку.

P.S. Эта задача решается по-другому, без вычисления факториала.

Отслеживать
ответ дан 2 фев 2022 в 16:15
Stanislav Volodarskiy Stanislav Volodarskiy
26k 3 3 золотых знака 15 15 серебряных знаков 47 47 бронзовых знаков

import math n = int(input()) result = sum(n // 5**i for i in range(1, int(math.log(n, 5))+1))
Отслеживать
ответ дан 2 фев 2022 в 16:56
19.3k 5 5 золотых знаков 20 20 серебряных знаков 55 55 бронзовых знаков

Вариант 1: С использованием numpy и re.

Находим факториал и количество нулей в конце через re.search

import numpy as np import re def zeros(n: int): fact = np.math.factorial(n) return len(re.search(‘(0*)$’, str(fact)).group(0))
def end_zeros(n: int) -> int: num = np.math.factorial(n) return min((i for i,c in enumerate(str(num)[::-1], 0) if c != ‘0’), default=1)

UPD. Вариант 3 (без использования библиотек):

P.S. Пришлось зарегистрироваться на сайте и поступить на курс (Этот ответ принимает система)

def factorial(n: int): a = 1 for i in range(1, n+1): a *=i return a def trailing_zeros(n: int) -> int: list_of = list(str(factorial(n))) count = 0 for i in list_of[::-1]: if i == ‘0’: count += 1 else: break return count

UPD 2. Вариант 4. (Вообще без нахождения факториала)

Суть в том, что нам можно не находить сам факториал числа n, чтобы знать сколько там нулей.

поэтому мы можем в функцию просто передать число, от которого нужно найти факториал и получить количество нулей, что при больших числах будет намного быстрее.

def factorial(n): count = 0 while n >=5: n //= 5 count += n return count

Источник: ru.stackoverflow.com

Упражнение на Python: вычисление факториала числа

Напишите функцию Python для вычисления факториала числа (неотрицательное целое число). Функция принимает число в качестве аргумента.

Читайте также:
Как принять к учету основные средства в программе 1с

Пример решения : —

Код Python:

def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) n=int(input(«Input a number to compute the factiorial : «)) print(factorial(n))
Введите число для расчета факультативного: 4 24

Наглядная презентация:

Блок — схема:

«Блок-схема:

Визуализируйте выполнение кода Python:

Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:

Редактор кода Python:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Каков уровень сложности этого упражнения?

Источник: www.kodesource.top

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru