Напишите программу которая считает сумму цифр введенного числа python
Перейти к содержимому

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

  • автор:

Найти сумму цифр числа в Python

Для изу­че­ния ба­зо­вых кон­струк­ций язы­ка Python пре­по­да­ва­те­ли обыч­но все­гда пред­ла­га­ют про­стые и по­нят­ные за­да­чи школь­но­го уров­ня. Но, не смот­ря на это, та­кие за­да­чи по­лез­ны и учат не толь­ко язы­ку, но и уме­нию ре­а­ли­зо­вы­вать ал­го­рит­мы. Рас­смот­рим тут од­ну из та­ких за­дач.

Рас­смот­рим несколь­ко ва­ри­ан­тов ре­ше­ния этой за­да­чи. Про­стей­ший и самій оче­вид­ный спо­соб ре­ше­ния за­да­чи со­сто­ит в том, чтобы по­лу­чить каж­дую из цифр, со­став­ля­ю­щих дан­ное чис­ло. Для это­го по­сле­до­ва­тель­но бу­дем де­лить ис­ход­ное чис­ло n на 10 на­це­ло (на­хо­дит раз­ря­ды чис­ла). Де­ле­ние бу­дем вы­пол­нять в цик­ле, в ко­то­ром сра­зу же и бу­дем на­кап­ли­вать тре­бу­е­мую сум­му цифр — suma, а так­же за­по­ми­нать ре­зуль­тат де­ле­ния для но­вой ите­ра­ции цик­ла в ту же пе­ре­мен­ную n. Де­ле­ние (цикл) про­дол­жа­ет­ся по­ка чис­ло n не до­стигнет нуле­во­го зна­че­ния.

Но, мож­но обой­тись и без де­ле­ния. Для это­го за­дан­ное чис­ло n пре­об­ра­зу­ем в стро­ку s, а за­тем пе­ре­бе­рем в цик­ле по­сле­до­ва­тель­но все сим­во­лы (циф­ры) этой стро­ки. Но, чтобы их мож­но бы­ло сло­жить, они долж­ны быть пре­об­ра­зо­ва­ны в чис­ло­вые зна­че­ния — int(c). И даль­ше оста­ет­ся толь­ко вос­поль­зо­вать­ся функ­ци­ей sum(), чтобы сло­жить эти все циф­ры и по­лу­чить сум­му цифр чис­ла — suma.

Но, нам это­го ма­ло и мы идем даль­ше. А мож­но ли при ре­ше­нии этой за­да­чи из­ба­вить­ся от цик­ла. По­про­бу­ем. Ре­ше­ние бу­дет по­хо­же на преды­ду­щее, но цикл за­ме­ним встро­ен­ной функ­ци­ей map() при­ме­ня­е­мой к каж­до­му эле­мен­ту неко­то­ро­го объ­ек­та. В на­шем слу­чае это сим­во­лы стро­ки str(n), по­лу­чен­ной пре­об­ра­зо­ва­ни­ем ис­ход­но­го чис­ла в стро­ку и ее со­став­ля­ю­щих сим­во­лов в це­лые чис­ла.

Ес­ли код это­го при­ме­ра не со­всем по­ня­тен, то про­ще бу­дет по­нять сле­ду­ю­щий код — там ис­поль­зу­ем пре­об­ра­зо­ва­ние чис­ла в спи­сок из цифр и даль­ше про­хо­дим­ся по нему функ­ци­ей map()

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

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

Первый заключается в том, чтобы преобразовать число в строку и обращаться к каждому элементу по индексу с помощью цикла for.

result = input()
suma = 0
mult = 1
for num in result :
suma += int(num)
mult *= int(num)

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

Отсюда получаем алгоритм:

number = int(input())
plus = 0
while n > 0:
temp = number % 10
plus = plus + temp
number = number // 10

На 5 строчке кода, мы получаем последнюю цифру числа, далее проводим с ней разные манипуляции. А на 8 строчке, мы удаляем из числа эту самую последнюю цифру.

Функция sum () в python

Для того, чтобы вычислить сумму (и не только сумму) всех чисел в массиве имеется несколько способов. Для начала попробуем написать алгоритм с использованием цикла, выглядеть он будет так:

def sum(list):
result = 0
for item in list:
result = result + item
return result
print(list([1,3,5,7,9]))

Понятное дело, что сумму тут можно заменить чем угодно.

Уже не раз говорилось, что пайтон любит своих пользователей и поэтому уже есть встроенная функция, которая называется Sum(). Она нужна, чтобы сложить все элементы последовательности.

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

Напоследок хочется напомнить, что самая важная часть в программирование — практика. Поэтому попробуйте написать алгоритмы, написанные выше, сами и это принесет большую пользу. Успехов!

Python. Решение задач на обработку целых чисел

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

Содержание

  • 1. Выделить все цифры целого числа и представить их в виде списка
  • 2. Определить указанную цифру в целом числе
    • 2.1. Позиция указывается слева
    • 2.2. Позиция задается справа

    Поиск на других ресурсах:

    1. Выделить все цифры целого числа и представить их в виде списка

    нужно заменить на строку

    3. Вычислить сумму цифр целого числа

    # Задача. Вычислить сумму цифр числа # 1. Ввод числа n = input ( «n color: #ff0000;»># 2. Вычислить сумму summ = 0 # Вычисляемая сумма # Цикл выделения цифр из числа и вычисление суммы while n>0: summ = summ + n%10 # взять последнюю цифру и прибавить цифру к сумме n = n/10 # убрать последнюю цифру из числа # 3. Вывести сумму print ( «sum color: #333300;»>⇑

    4. Инвертировать целое число (1234 => 4321)

    Инвертировать число означает, что нужно получить новое число, которое читается как исходное число от конца до начала.

    # Задача. Ивертировать число import math # 1. Ввод числа n = input ( «n color: #ff0000;»># 2. Создание нового инвертированного числа # 2.1. Сначала нужно вычислить количество цифр (порядок) в числе k = 0 n2 = n while n2>0: k = k+1 # увеличить счетчик количества цифр на 1 n2 = n2/10 # Убрать цифру # 2.2. Цикл выделения цифр из числа n и создание инвертированного числа while n>0: # взять последнюю цифру last = n%10 # уменьшить порядок числа k = k-1 # умножить полученную цифру на 10^k # и прибавить ее к новому числу n2 = n2 + int (last*math.pow(10, k)) # n2 — новое число # убрать последнюю цифру из числа n = n/10 # 3. Вывести новое число print ( «n2 color: #333300;»>⇑

    5. Функция GetNumCount() . Определить количество цифр в числе

    Реализовать функцию GetNumCount() , которая определяет количество цифр в целом числе. Функция получает параметром исходное число.

    # Задача. Определить количество цифр в числе import math # Функция GetNumCount() — определить количество цифр в числе def GetNumCount (n): k = 0 # k — результат while n>0: k = k+1 n = n/10 return k # Демонстрация работы функции # Ввод числа n = input ( «n color: #ff0000;»># Вызов функции k = GetNumCount(n) print ( «k color: #333300;»>⇑

    6. Функция GetMaxNum() . Определить максимальную цифру в числе

    В заданном целом числе n (n>0) нужно определить максимальную цифру. Например, если есть число 2883345, то максимальная цифра будет 8.

    # Задача. Определить максимальную цифру в числе import math # Функция GetMaxNum() — определить максимальную цифру в числе def GetMaxNum (n): # получить последнюю цифру числа Max = n%10 while n>0: n = n/10 # уменьшить число if Max < n%10: # сравнить последнюю цифру с максимумом Max = n%10 return Max # Демонстрация работы функции # Ввод числа n = input ( «n color: #ff0000;»># Вызов функции num = GetMaxNum(n) print ( «num color: #333300;»>⇑

    7. Функция GetMinNum() . Определить минимальную цифру в числе

    Задача решается так же как и в предыдущем примере.

    # Задача. Определить минимальную цифру в числе import math # Функция GetMinNum() — определить минимальную цифру в числе def GetMinNum (n): # получить последнюю цифру числа Min = n%10 while n>0: n = n/10 # уменьшить число if Min > n%10: # сравнить последнюю цифру с минимумом Min = n%10 return Min # Демонстрация работы функции # Ввод числа n = input ( «n color: #ff0000;»># Вызов функции num = GetMinNum(n) print ( «num color: #333300;»>⇑

    Как посчитать сумму цифр числа пока оно не станет однозначным?

    39492 — сумма цифр 27. У 27 сумма цифр 9. Программа завершается.

    То, что я написал, действительно считает сумму цифр в числе, но мне надо считать это еще раз, пока число не будет однозначным.
    Я понял, что здесь нужен while, но не знаю как реализовать.

    p.s. с циклом while пробовал, но не вышло ничего

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *