Найти произведение всех цифр заданного четырехзначного числа питон

Сумма и произведение цифр числа в Python

Сложить или перемножить цифры числа — задача, встречающаяся почти каждому программисту. Она позволяет не только проверить умение писать код и придумывать правильные алгоритмы, но и даёт возможность оценить синтаксис и функционал используемого языка.

Сумма цифр

Реализация программы на разных языках программирования мало чем отличается. Но из-за концепций и особенностей синтаксиса решение на языке Python получается более коротким и простым, чем, например, решение на C++.

Полный код программы нахождения суммы цифр числа на Python выглядит так:

num = int(input("Введите целое: ")) sum = 0 while (num != 0): sum = sum + num % 10 num = num // 10 print("Сумма цифр числа равна: ", sum)

В первой строке программа запрашивает ввод числа, цифры которого будут складываться.

Во второй строке объявляется переменная, в которую будет записываться сумма. Переменная обязательна должна быть равна нулю. Иначе полученная сумма будет отличаться от реальной (некоторые люди путают сложение и произведение чисел, поэтому пишут не ноль, а единицу).

В цикле while происходит суммирование цифр. В 4 строке программа получает младший разряд числа. Например, если число равно 125, программа получает 5. Полученный младший разряд прибавляется к переменной суммы.

Строка 5: использованный младший разряд отбрасывается (делится на 10), то есть если было 125, то станет 12. Обязательно необходимо использовать целочисленное деление, то есть деление без остатка, иначе цифра не отбросится, а уйдет в дробную часть результата.

Читайте также:  Insert html to mysql database

В 6 строке программа выводит результат суммирования в консоль. Пример выполнения:

Введите целое: 555 Сумма цифр числа равна: 15

В этом примере мы посчитали с помощью Python сумму цифр трёхзначного числа 555.

Произведение цифр

Программа на Python для вычисления произведения цифр числа имеет похожую структуру и принцип работы. Однако есть некоторые важные отличия:

num = int(input("Введите целое: ")) mult = 1 while (num != 0): mult = mult * (num % 10) num = num // 10 print("Произведение цифр равно: ", mult)

Во-первых, переменная для хранения произведения равна единице, если присвоить ей ноль, то и само произведения будет всегда равно нулю. Во-вторых, теперь в цикле while очередная цифра не прибавляется к переменной, а является её множителем.

Важный момент, из-за того что оператор умножения имеет более высокий приоритет выполнения, чем оператор остатка от деления, выражение «num % 10» помещается в круглые скобки. Если не сделать этого, программа сначала будет умножать переменную mult на число и только потом брать от неё остаток.

Введите целое: 55 Произведение цифр равно: 25

Частные случаи

Рассмотренные варианты программ являются самыми простыми. Однако существует ещё много частных случаев.

Число задано строкой

Когда программа получает ввод с помощью input, интерпретатор автоматически присваивает переменной строковый тип, если попытаться использовать эту переменную в вычислениях, возникнет ошибка.

В рассмотренных скриптах эта проблема была решена следующим образом:

num = int(input("Введите целое: "))

Оператор input помещается в функцию int, которая преобразует полученную строку к целому числу. В некоторых случаях бывает удобнее не преобразовывать число сразу, а сделать это непосредственно перед вычислением. Пример такого случая представлен ниже.

Задано дробное

Если пользователь вводит дробное число, стандартная реализация перестаёт работать. Дробная часть не учитывается, т.к. в программе происходит деление на 10. Даже если преобразовывать введенное число к целому с помощью int , то будут отброшены все дробные цифры.

Рассмотрим программу для вычисления произведения цифр дробного числа (аналогично с суммой):

num = input("Введите дробное: ") # разделим введённое (тип данных строка) на две части x = num.split(".") a = int(x[0]) # целая часть b = int(x[1]) # дробная часть mult = 1 while (a != 0): # перемножаем числа целой части mult = mult * (a % 10) a = a // 10 while (b != 0): # перемножаем числа дробной части mult = mult * (b % 10) b = b // 10 print("Произведение цифр равно:", mult)

Пример выполнения программы:

Введите дробное: 55.5 Произведение цифр равно: 125

Эта программа правильно вычисляет произведение цифр любого числа:

Реализация программы специально была сделана через строки, с помощью функции split введённое число делится на дробную и целую части. Дробная часть обрабатывается также, как и целая.

При приведении к действительному

Подход, описанный выше выбран потому, что из-за неточного представления десятичных дробей в двоичном виде (в котором работает компьютер), реальное представление числа отличается от ожидаемого. В итоге, если пользователь вводит число 0.55, то если привести её к действительному числу с помощью float , в переменную записывается значение 0.54999…8. В итоге, результат получается неточным, если ограничить количество итераций цикла, либо цикл является бесконечным, пример:

num = float(input("Введите дробное: ")) # Преобразуем строку в дробное a = int(num) # целая часть, например, 5 b = num - int(num) # дробная часть, например, 0.55 print("a =", a) print("b =", b) mult = 1 while (a != 0): # перемножаем числа целой части mult = mult * (a % 10) a = a // 10 while (b != 0): # b никогда не будет равно 0 mult = mult * int(b*10) # 0.55 * 10 = 5.5, int(5.5) = 5 b = b * 10 - int(b * 10) print("Произведение цифр равно:", mult)

Если бы в переменной реально было бы записано значение 5.55, то программа работала бы нормально. Однако в переменную b на самом деле помещается 0,54999… Это приводит к бесконечному выделению и отбрасыванию старшего разряда.

Вот пример вывода полученной программы:

Введите дробное: 5.55 a = 5 b = 0.5499999999999998 Произведение цифр равно: 0

Программа вывела переменную b , как 0.5499999999999998, после умножения на 10, её значение уже будет равно 5.499999999999998. Если вычесть из этого числа 5, то получим 0.4999999999999982. На конце добавилась цифра 2!

Таким образом прошло много итераций и в итоге b стало равно 0. В ходе перемножений среди цифр из которых состояло b были и нули. Поэтому результат равен 0.

Источник

Найти произведение цифр четырехзначного числа

Найти произведение цифр заданного четырехзначного числа
2. Найти произведение цифр заданного четырехзначного числа

Найти произведение цифр заданного четырехзначного число
1. Найти произведение цифр заданного четырехзначного число.

Найти частное произведений четных и нечетных цифр четырехзначного числа
Найти частное произведений четных и нечетных цифр четырехзначного числа с.

Найти самое маленькое число, которое можно составить из цифр заданного четырехзначного числа
Задача составаить из четерехзначного числа самое маленькое число, которое можна составить из его .

number = input('Введите число: ') count = 0 for i in number: count += int(i) print(count)

Или же воспользоваться встроенной функцией sum() и генератором списков

print(sum([int(i) for i in input('Введите число: ')]))

Эксперт по компьютерным сетям

ЦитатаСообщение от Ennjin Посмотреть сообщение

number = input('Введите число: ') count = 1 for i in number: count *= int(i) print(count)
a=m%10 m=m//10 b=m%10 m=m//10 c=m%10 m=m//10 d=m%10

Лучший ответ

Сообщение было отмечено mik-a-el как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12
number = int(input('Введите число: ')) while True: count = number%10 number = number//10 if count: break while number: x = number%10 if x : count *= x number = number//10 print(count)
number = [int(i) for i in input('Введите число: ') if i !='0'] count = number[0] for x in number[1:]: count *= x print(count)

Лучший ответ

Сообщение было отмечено mik-a-el как решение

Решение

from functools import reduce def digitsProduct(n): return reduce(lambda x, y: x * y, map(int, str(n))) if __name__ == "__main__": n = int(input("Введите число n: ")) print(digitsProduct(n))

Arsegg, а если в числе еcть цифра 0, то можно переделать код так, чтоб программа на о не умножала:
12305->30

Эксперт по компьютерным сетям

reduce(lambda x, y: x * y, map(int, str(n).replace("0", "")))

Сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр
Составить программы, печатающие значение True, если следующие указанные высказывания являются.

Найти произведение цифр числа
1)дано двухзначное число. Найти произведение его чисел, а если ввести трехзначное число, то выдаст.

Является ли сумма цифр числа двухзначным числом / произведение цифр числа трехзначным числом
Дано трехзначное число. Определить: а) является ли сумма его цифр двухзначным числом; б) является.

Данные натуральные числа n и m. Получить произведение m первых цифр числа n
Данные натуральные числа n и m. Получить произведение m первых цифр числа n. Помогите, пожалуйста

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

Найти произведение последних цифр всех чисел последовательности, больших числа 13
Задача Дана непустая последовательность целых чисел, оканчивающаяся нулем. Ноль в.

Источник

Найти произведение цифр заданного четырехзначного число

Найти произведение цифр заданного четырехзначного числа
2. Найти произведение цифр заданного четырехзначного числа

Найти самое маленькое число, которое можно составить из цифр заданного четырехзначного числа
Задача составаить из четерехзначного числа самое маленькое число, которое можна составить из его .

Найти произведение цифр четырехзначного числа
Было задание найти произведение цифр заданного четрыхзначного числа Вот код который я сделал.

Сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр
Составить программы, печатающие значение True, если следующие указанные высказывания являются.

Лучший ответ

Сообщение было отмечено Nfyz как решение

Решение

>>> n = 12345 >>> reduce(lambda a, b: a * b, map(int, str(n)), 1) 120 >>>

Дано трехзначное число. Определить, больше ли заданного числа x произведение его цифр
Дано трехзначное число. Определить, больше ли заданного числа x произведение его цифр. Помогите.

Дано трехзначное число. Определить, больше ли заданного числа x произведение его цифр
Дано трехзначное число. Определить, больше ли заданного числа x произведение его цифр. Помогите.

Найти произведение цифр заданного четырёхзначного числа
Найти произведение цифр заданного четырёхзначного числа Дублирование тем запрещено правилами.

Найти произведение цифр заданного четырехзначного числа
Найти произведение цифр заданного четырехзначного числа. (c++)

Найти произведение цифр заданного четырехзначного числа
Написать программу, которая находит произведение цифр заданного четырехзначного числа. У меня.

Найти произведение цифр заданного четырехзначного числа.
найти произведение цифр заданного четырехзначного числа в JavaScript. :pardon: не знаю как это.

Источник

Найти произведение цифр заданного четырехзначного числа

Найти произведение цифр заданного четырехзначного число
1. Найти произведение цифр заданного четырехзначного число.

Найти произведение цифр четырехзначного числа
Было задание найти произведение цифр заданного четрыхзначного числа Вот код который я сделал.

Найти самое маленькое число, которое можно составить из цифр заданного четырехзначного числа
Задача составаить из четерехзначного числа самое маленькое число, которое можна составить из его .

Сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр
Составить программы, печатающие значение True, если следующие указанные высказывания являются.

Проверить, что сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр.
Составить программу в Python, печатающие значение True, если указанное высказывание являются.

Эксперт PythonЭксперт Java

Лучший ответ

Сообщение было отмечено Bananovich1 как решение

Решение

from functools import reduce print(reduce(lambda x, y: x * y, map(int, [i for i in input()])))
a,b,c,d = map(int,input()) print(a*b*c*d)

Найти частное произведений четных и нечетных цифр четырехзначного числа
Найти частное произведений четных и нечетных цифр четырехзначного числа с.

Дано трехзначное число. Определить, больше ли заданного числа x произведение его цифр
Дано трехзначное число. Определить, больше ли заданного числа x произведение его цифр. Помогите.

Дано трехзначное число. Определить, больше ли заданного числа x произведение его цифр
Дано трехзначное число. Определить, больше ли заданного числа x произведение его цифр. Помогите.

Найти сумму цифр заданного четырехзначного числа N превосходит произведение цифр этого же числа
нужна программа которая проверяет следующий факт: Сумма цифр заданного четырехзначного числа N.

Найти сумму цифр заданного четырёхзначного числа N превосходит произведение цифр этого же числа на 1
Помогите решить срочно, буду очень признателен: 1.сумма цифр заданного четырёхзначного числа N.

Найти произведение цифр заданного четырехзначного числа
Найти произведение цифр заданного четырехзначного числа и составить блок-схему Turbo Pascal

Источник

Оцените статью