Сумма и произведение цифр числа. Решение задачи на Python
Одной из часто используемых задач для начинающих изучать программирование является нахождение суммы и произведения цифр числа. Число может вводиться с клавиатуры или генерироваться случайно. Задача формулируется так:
Дано число. Найти сумму и произведение его цифр.
Например, сумма цифр числа 253 равна 10-ти, так как 2 + 5 + 3 = 10. Произведение цифр числа 253 равно 30-ти, так как 2 * 5 * 3 = 30.
В данном случае задача осложняется тем, что количество разрядов числа заранее (на момент написания программы) не известно. Это может быть и трехзначное число, как в примере выше, и восьмизначное, и однозначное.
Обычно предполагается, что данная задача должна быть решена арифметическим способом и с использованием цикла. То есть с заданным число должны последовательно выполняться определенные арифметические действия, позволяющие извлечь из него все цифры, затем сложить их и перемножить.
При этом используются операции деления нацело и нахождения остатка. Если число разделить нацело на 10, произойдет «потеря» последней цифры числа. Например, 253 ÷ 10 = 25 (остаток 3). С другой стороны, эта потерянная цифра есть остаток от деления. Получив эту цифру, мы можем добавить ее к сумме цифр и умножить на нее произведение цифр числа.
Пусть n – само число, suma – сумма его цифр, а mult – произведение. Тогда алгоритм нахождения суммы и произведения цифр можно словесно описать так:
- Переменной suma присвоить ноль.
- Переменной mult присвоить единицу. Присваивать 0 нельзя, так как при умножении на ноль результат будет нулевым.
- Пока значение переменной n больше нуля повторять следующие действия:
- Найти остаток от деления значения n на 10, то есть извлечь последнюю цифру числа.
- Добавить извлеченную цифру к сумме и увеличить на эту цифру произведение.
- Избавиться от последнего разряда числа n путем деления нацело на 10.
В языке Python операция нахождения остатка от деления обозначается знаком процента — %
. Деление нацело — двумя слэшами — //
.
Код программы на языке Python
n = int(input()) suma = 0 mult = 1 while n > 0: digit = n % 10 suma = suma + digit mult = mult * digit n = n // 10 print("Сумма:", suma) print("Произведение:", mult)
Пример выполнения:
253 Сумма: 10 Произведение: 30
Изменение значений переменных можно записать в сокращенном виде:
... while n > 0: digit = n % 10 suma += digit mult *= digit n //= 10 ...
Приведенная выше программа подходит только для нахождения суммы и произведения цифр натуральных чисел, то есть целых чисел больше нуля. Если исходное число может быть любым целым, следует учесть обработку отрицательных чисел и нуля.
Если число отрицательное, это не влияет на сумму его цифр. В таком случае достаточно будет использовать встроенную в Python функции abc
, которая возвращает абсолютное значение переданного ей аргумента. Она превратит отрицательное число в положительное, и цикл while
с его условием n > 0
будет работать как и прежде.
Если число равно нулю, то по логике вещей сумма его цифр и их произведение должны иметь нулевые значения. Цикл срабатывать не будет. Поскольку исходное значение mult — это 1, следует добавить проверку на случай, если заданное число — это ноль.
Программа, обрабатывающая все целые числа, может начинаться так:
n = abs(int(input())) suma = 0 mult = 1 if n == 0: mult = 0 ...
Заметим, если в самом числе встречается цифра 0 (например, 503), то произведение всех цифр будет равно нулю. Усложним задачу:
Вводится натуральное число. Найти сумму и произведение цифр, из которых состоит это число. При этом если в числе встречается цифра 0, то ее не надо учитывать при нахождении произведения.
Для решения такой задачи в цикл добавляется проверка извлеченной цифры на ее неравенство нулю. Делать это надо до умножения на нее значения переменной-произведения.
n = int(input()) suma = 0 mult = 1 while n > 0: digit = n % 10 if digit != 0: suma += digit mult *= digit n = n // 10 print("Сумма:", suma) print("Произведение:", mult)
Обратим внимание, что заголовок условного оператора if digit != 0:
if digit:
. Потому что 0 — это False
. Все остальные числа считаются истиной.Приведенный выше математический алгоритм нахождения суммы и произведения цифр числа можно назвать классическим, или универсальным. Подобным способом задачу можно решить на всех императивных языках, независимо от богатства их инструментария. Однако средства языка программирования могут позволить решить задачу другим, зачастую более простым, путем. Например, в Python можно не преобразовывать введенную строку к числу, а извлекать из нее отдельные символы, которые преобразовывать к целочисленному типу int
:
a = input() suma = 0 mult = 1 for digit in a: suma += int(digit) mult *= int(digit) print("Сумма:", suma) print("Произведение:", mult)
Если добавить в код проверку, что извлеченный символ строки действительно является цифрой, то программа станет более универсальной. С ее помощью можно будет считать не только сумму и произведение цифр целых чисел, но и вещественных, а также цифр, извлекаемых из произвольной строки.
n = input() suma = 0 mult = 1 for digit in n: if digit.isdigit(): suma += int(digit) mult *= int(digit) print("Сумма:", suma) print("Произведение:", mult)
Пример выполнения:
это3 чи3с9ло! Сумма: 15 Произведение: 81
Строковый метод isdigit
проверяет, состоит ли строка только из цифр. В нашем случае роль строки играет одиночный, извлеченный на текущей итерации цикла, символ.
Глубокое знание языка Python позволяет решить задачу более экзотическими способами:
import functools n = input() n = [int(digit) for digit in n] suma = sum(n) mult = functools.reduce(lambda x, y: x*y, n) print("Сумма:", suma) print("Произведение:", mult)
Выражение [int(digit) for digit in n]
представляет собой генератор списка. Если была введена строка "234"
, будет получен список чисел: [2, 3, 4]
.
Встроенная функция sum
считает сумму элементов переданного ей аргумента.
Функция reduce
модуля functools
принимает два аргумента — лямбда-выражение и в данном случае список. Здесь в переменной x происходит накопление произведения, а y принимает каждое следующее значение списка.
Больше задач в PDF
Открытая Математика. Алгебра. Обыкновенные дроби
Обыкновенные дроби
Можно еще больше расширить числовое множество – так, чтобы операция деления над натуральными числами была выполнима всегда. Для этого введем понятие дроби.
Обыкновенной дробью называется число вида mn, где m и n – натуральные числа. Число m называется числителем этой дроби, а число n – её знаменателем.
Если n = 1, то дробь имеет вид m1, и её часто записывают просто m. Отсюда, в частности, следует, что любое натуральное число представимо в виде обыкновенной дроби со знаменателем 1.
Две дроби ab и cd называются равными, если ad=bc.
Например, 23=812, так как 2ċ12=3ċ8. Из этого определения следует, что дробь ab равна любой дроби вида ambm, где m – натуральное число. В самом деле, так как aċbm=bċam, то ab=ambm. Итак, мы готовы сформулировать следующее правило.
Если числитель и знаменатель данной дроби умножить или разделить на одно и то же число, неравное нулю, то получится дробь, равная данной.
С помощью основного свойства дроби можно заменить данную дробь другой дробью, равной данной, но с меньшими числителем и знаменателем.
Обыкновенная дробь mn называется правильной, если её числитель меньше её знаменателя, то есть m < n. Обыкновенная дробь называется неправильной, если её числитель больше её знаменателя, то есть m > n.
Справедливо следующее утверждение (его мы докажем ниже):
Всякую неправильную дробь можно представить в виде суммы натурального числа и правильной дроби.
Из двух дробей с одинаковыми знаменателями больше та дробь, числитель которой больше. Например, 37<57, 58<68. Из двух дробей с одинаковыми числителями больше та дробь, знаменатель которой меньше. Например, 12>15, 38<34. Чтобы сравнить две дроби с разными числителями и знаменателями, нужно преобразовать обе дроби так, чтобы их знаменатели стали одинаковыми. Такое преобразование называется приведением дробей к общему знаменателю.
Теперь знаменатели этих дробей одинаковы, значит, 2128>2028. Следовательно, 34>57. Ясно, что две дроби можно привести не к единственному общему знаменателю. Так, в нашем примере дроби 34 и 57 можно привести к знаменателю 56. В самом деле: 34=3ċ144ċ14=4256, 57=5ċ87ċ8=4056.
Привести дроби к наименьшему общему знаменателю: 1215 и 720.
Найдём сперва наименьшее общее кратное чисел 15 и 20. НОК (15, 20) = 60.
Так как 60 : 15 = 4, то числитель и знаменатель дроби 1215 нужно умножить на 4: 1215=12ċ415ċ4=4860. Поскольку 60 : 20 = 3, то числитель и знаменатель второй дроби нужно умножить на 3: 720=7ċ320ċ3=2160. Итак, дроби приведены к общему знаменателю: 1215=4860 и 720=2160.Ответ. 1215=4860, 720=2160.
В рассмотренном примере числа 4 и 3 называют дополнительными множителями для первой и второй дроби соответственно.
Теперь мы можем определить арифметические действия с дробями.
Сложение. Если знаменатели дробей одинаковы, то чтобы сложить эти дроби, нужно сложить их числители; знаменатель остаётся прежним, то есть ab+cb=a+cb. Если знаменатели данных дробей разные, то дроби нужно сначала привести к общему знаменателю, а потом поступить, как описано выше.
Вычитание. Если две дроби имеют одинаковые знаменатели, то ab-cb=a-cb. Если знаменатели данных дробей различны, то сперва приводят дроби к общему знаменателю, а потом вычитают их по вышеприведённой формуле.
Умножение. Произведение двух дробей равно дроби, числитель которой равен произведению числителей данных дробей, а знаменатель равен произведению их знаменателей, то есть abċcd=acbd. Например, 23ċ47=2ċ43ċ7=821.
Деление. Деление дробей осуществляют следующим образом: ab:cd=adbc. Например, 35:27=3ċ75ċ2=2110.
В случае умножения и деления смешанных чисел всегда удобно переходить к неправильным дробям.
Сложить две дроби 37 и 57. Ответ представить в виде неправильной дроби.
Имеем:
37+57=3+57=87.
Ответ. 87.
Сложить две дроби 1215 и 720. Ответ представить в виде неправильной дроби.
Имеем:
1215+720=4860+2160=48+2160=6960.
Ответ. 6960.
Теперь можно показать, что любую неправильную дробь можно представить в виде суммы натурального числа и правильной дроби (или в виде натурального числа, если дробь mn такова, что число m кратно n, например, 123=4).
Представить неправильную дробь в виде суммы натурального числа и правильной дроби: 1) 257; 2) 3712.
Имеем:
1) 257=21+47=217+47=3+47.
2) 3712=36+112=3612+112=3+112.
Обычно сумму натурального числа и правильной дроби пишут без знака сложения, то есть вместо 3+47 пишут просто 347. Неправильная дробь, записанная в такой форме, называется смешанным числом. Говорят, что целая часть этого числа равна 3, а дробная – 47.
Ответ. 347, 3112.
Всякую неправильную дробь можно представить в виде смешанного числа (или в виде натурального числа). Понятно также, что верно и обратное: всякое смешанное число может быть представлено в виде неправильной дроби. Например, 435=4+35=205+35=20+35=235.
Выполнить действия. 1) 413-234; 2) 323ċ415; 3) 323:415.
Имеем:
- 413-234=4+13-(2+34)=4+13-2-34=(4-2)+13-34=2+4-912==2-512=1+1212-512=1+12-512=1+712=1712.
- 323ċ415=(3+23)ċ(4+15)=113ċ215=23115=225+615=15615.
- 323:415=113:215=113ċ521=5563.
Ответ. 1) 1712; 2) 15615; 3) 5563.
Купить входную дверь |
masterdveri74.ru |
Смотрите также: Математика, Английский язык, Химия, Биология, Физика, География, Астрономия. {30}$, чтобы увидеть, насколько они велики на самом деле. 9м$$
$\endgroup$ 1 $\begingroup$Это не ответ, мне просто нужно показать график. Я забыл пометить ось. Горизонтальный — $n$, а второй — $m$
Надеюсь, вам понравится
$\endgroup$ 4 $\begingroup$Еще одна попытка: 9н$.
$\endgroup$ 3Алгебраические выражения | ChiliMath
Математика, как и любой другой язык, имеет способ передачи идей. Алгебраическое выражение — это краткий способ описания математических объектов с помощью чисел, переменных (букв) и арифметических операций, таких как сложение, вычитание, умножение и деление.
Тремя основными компонентами алгебраических выражений являются числа , переменные и арифметические операции .
- Числа или константы
Примеры: [латекс]1[/латекс], [латекс]6[/латекс], [латекс]8[/латекс], [латекс]27[/латекс], [латекс] 32[/latex] и т. д.
- Переменные или буквы
Примеры: [latex]x[/latex], [latex]y[/latex], [latex]a[/latex], [latex]h [/latex], [latex]p[/latex] и т. д.
- Арифметические операции
Примеры: [latex]+[/latex] (сложение), [latex] – [/latex] (вычитание) , [латекс] \times[/латекс] (умножение) , [латекс]÷[/латекс] (деление)
Ниже приведены простые примеры, которые помогут вам ознакомиться с операциями сложения, вычитания, умножения и деления.
- Сложение
сумма [латекс]х[/латекс] и [латекс]5[/латекс] → [латекс]х+5[/латекс]
- Вычитание 90 020
разность [латекс]у[/латекс] и [латекс]3[/латекс] → [латекс]у-3[/латекс]
- Умножение
произведение [латекс]n[/латекс] и [латекс]2[/латекс] → [латекс]2n[/латекс]
- Деление
частное [латекс]k[/латекс] и [латекс]7[/латекс] → [латекс]\большой{{к \более 7}}[/латекс]
Пошаговые примеры написания алгебраических выражений
Давайте рассмотрим больше примеров.
Пример 1: Сумма удвоенного числа и [латекс]3[/латекс]
Ответ: Пусть переменная [латекс]х[/латекс] будет неизвестным числом. Таким образом, удвоение числа означает [латекс]2x[/латекс]. Сумма (используйте символ плюс) удвоенного числа и [латекс]3[/латекс] может быть записана как [латекс]2x+3[/латекс].
Пример 2: Разница тройного числа a и [latex]5[/latex]
Ответ: Пусть переменная [latex]y[/latex] будет неизвестным числом. Таким образом, тройное число означает [латекс]3г[/латекс]. Разность (используйте символ минус) тройного числа и [латекс]5[/латекс] должна быть записана как [латекс]3у – 5[/латекс].
Пример 3: Сумма частного [латекс]m[/латекс] и [латекс]2[/латекс] и произведение [латекс]4[/латекс] и [латекс]n[ /латекс].
Ответ: В этом случае неизвестные номера уже указаны как [latex]m[/latex] и [latex]n[/latex]. Это одним поводом для беспокойства меньше.
Ключ в том, чтобы признать, что мы собираемся добавить частное и произведение.
- частное [латекс]m[/латекс] и [латекс]2[/латекс] выражается как [латекс]\большой{{м \более 2}}[/латекс]
- [латекс]4[/латекс] и [латекс]n[/латекс] выражается как [латекс]4n[/латекс]
Таким образом, сумма частного и произведения равна [латекс] {\ большой {{м \ более 2}}} + 4n[/латекс].
Пример 4: Разность произведения [латекс]7[/латекс] и [латекс]w[/латекс] и частного [латекс]2[/латекс] и [латекс]v[ /латекс].
Ответ: В этом случае неизвестным номерам были присвоены соответствующие переменные: [latex]w[/latex] и [latex]v[/latex].
Ключ в том, чтобы признать, что мы собираемся вычесть произведение на частное некоторых выражений.
- произведение [латекс]7[/латекс] и [латекс]в[/латекс] выражается как [латекс]7в[/латекс]
- частное [латекс]2[/латекс] и [latex]v[/latex] выражается как [latex]\Large{{2 \over v}}[/latex]
Следовательно, разница между произведением и частным равна [latex]7w – {\Large{ {2 \over v}}}[/latex].
Общие слова или термины для обозначения сложения, вычитания, умножения и деления
Давайте рассмотрим некоторые распространенные слова или фразы, описывающие четыре арифметических операции. Очень важно, чтобы вы понимали эти слова или фразы, чтобы успешно написать или интерпретировать любое заданное алгебраическое выражение.
Преобразование математических фраз в алгебраические выражения
Ключом к обучению является изучение МНОГО примеров!
МАТЕМАТИЧЕСКИЕ ФРАЗЫ | АЛГЕБРАИЧЕСКИЕ ВЫРАЖЕНИЯ |
---|---|
число плюс 9 | у + 9 |
сумма числа и 10 | м + 10 |
б + 5 | |
число увеличить на 4 | х + 4 |
ч отнять 2 | ч − 2 |
2 убери по номеру | 2 − ч |
а число минус 11 | k − 11 |
11 минус число | 11 − k |
число уменьшилось на 7 903 15 | y − 7 |
разница n и 25 | n − 25 |
разница 25 и n | 25 − n |
5 меньше числа | 9031 4 x − 5|
x меньше числа 5 | 5 − x |
произведение r и 4 | 4r |
7 раз число | 7 шт. |