Как найти сумму цифр числа в питоне
Перейти к содержимому

Как найти сумму цифр числа в питоне

  • автор:

Сумма цифр трехзначного числа

Как извлечь отдельные цифры из числа? Если число разделить нацело на десять, в остатке будет последняя цифра этого числа. Например, если 349 разделить нацело на 10, то получится частное 34 и остаток 9. Если потом 34 разделить также, получится частное 3 и остаток 4; далее при делении 3 на 10 получим частное 0 и остаток 3.

В языках программирования почти всегда есть две операции:

1) нахождение целого при делении нацело,

2) нахождение остатка при делении нацело.

В языке программирования Python первая операция обозначается // (двумя знаками деления), а вторая — % (знаком процента). Например:

>>> 34 // 10 3 >>> 34 % 10 4 

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

>>> 34.5 % 10 4.5 >>> 34.5 // 10 3.0 >>> 34.5 // 12.9 2.0 

Алгоритм нахождения суммы цифр трехзначного числа abc (где a — сотни, b — десятки и c — единицы) можно описать так:

  1. Найти остаток от деления abc на 10, записать его в переменную d1 . Это будет цифра c.
  2. Избавиться от цифры c в числе abc, разделив его нацело на 10.
  3. Найти остаток от деления ab на 10, записать его в переменную d2 . Это будет цифра b.
  4. Избавиться от цифры b в числе ab, разделив его нацело на 10.
  5. Число a однозначное. Это еще одна цифра исходного числа.
  6. Сложить оставшееся число a со значениями переменных d1 и d2 .
n = input("Введите трехзначное число: ") n = int(n) d1 = n % 10 n = n // 10 d2 = n % 10 n = n // 10 print("Сумма цифр числа:", n + d2 + d3) 

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

Введите трехзначное число: 742 Сумма цифр числа: 13

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

  1. Остаток от деления на 10 исходного числа дает последнюю цифру числа.
  2. Если найти остаток от деления на 100 исходного числа, то мы получи последние две цифры числа. Далее следует разделить полученное двухзначное число нацело на 10, и у нас окажется вторая цифра числа.
  3. Если исходное трехзначное число разделить нацело на 100, то получится первая цифра числа.
n = input("Введите трехзначное число: ") n = int(n) d1 = n % 10 d2 = n % 100 // 10 d3 = n // 100 print("Сумма цифр числа:", d1 + d2 + d3) 

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

n = input("Введите трехзначное число: ") # Извлекается первый[0] символ строки, # преобразуется к целому. # Аналогично второй[1] и третий[2]. a = int(n[0]) b = int(n[1]) c = int(n[2]) print("Сумма цифр числа:", a + b + c) 

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

В этом случае надо воспользоваться функциями randint() , randrange() или random() из модуля random . Первым двум функциям передаются диапазоны: randint(100, 999) , randrange(100, 1000) . Получить трехзначное число, используя random() немного сложнее:

# Функция random генерирует # случайное дробное число от 0 до 1 from random import random # При умножении на 900 получается случайное # число от 0 до 899.(9). # Если прибавить 100, то получится # от 100 до 999.(9). n = random() * 900 + 100 # Отбрасывается дробная часть, # число выводится на экран n = int(n) print(n) # Извлекается старший разряд числа # путем деления нацело на 100 a = n // 100 # Деление нацело на 10 удаляет # последнюю цифру числа. # Затем нахождение остатка при # делении на 10 извлекает последнюю цифру, # которая в исходном числе была средней. b = (n // 10) % 10 # Младший разряд числа находится # как остаток при делении нацело на 10. c = n % 10 print(a+b+c) 

X Скрыть Наверх

Решение задач на Python

Python: Вычислить сумму цифр числа

Юн Сергей

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

# Вычисление суммы цифр трехзначного числа # Простой вариант для понимания логики вычисления import random a=random.randint(100, 999) print ('Случайное число =',a) s=a%10 a=a//10 print ('Первый проход, s =',s, 'a =',a) s=s+a%10 a=a//10 print ('Второй проход, s =',s, 'a =',a) s=s+a%10 a=a//10 print ('Третий проход, s =',s, 'a =',a) print ('Сумма цифр числа = ',s)

2. Вариант (цикл For)

# Вычисление суммы цифр трехзначного числа # Простой вариант для понимания логики вычисления import random a=random.randint(100, 999) # Получаем случайное трехзначное число из диапазона 100-999 print ('Случайное число "a" =',a) s=0 for i in range (3): s,a = s + a%10, a//10 print (i+1, ' проход: s = ',s, ', a = ',a, sep='') print ('Сумма цифр числа "a" = ',s)

3. Мини

import random a=random.randint(100, 999) print ('Случайное число "a" =',a) print (a//100 + a//10%10 + a%10)

4. Через map и sum

import random a=random.randint(100, 99999) b = map(int, str(a)) print('Дано число <>, сумма знаков числа = <>'. format(a, sum(b)))

Как найти наибольшее по сумме чисел?

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

number_of_digits = int(input('Введите количество чисел: ')) max_m = 0 max_sum = 0 summ = 0 for i in range(number_of_digits): print('Введите число: ', end=' ') number = int(input()) this_num = number while number > 0: summ += number % 10 number //= 1 if summ > max_sum: max_sum = summ max_num = this_num summ = 0 print('Число', max_num, 'имеет максимальную сумму цифр:', max_sum) Прошу помощи в решении.
  • Вопрос задан более года назад
  • 2429 просмотров

1 комментарий

Простой 1 комментарий

Вычислить сумму цифр, из которого состоит число

Author24 — интернет-сервис помощи студентам

Написать функцию sum_digits, которая заменяет число x на сумму цифр, из которых состоит число x
Написать функцию sum_digits, которая заменяет число x на сумму цифр, из которых состоит число x.

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

Написать функцию void sum_digits(int * x), которая заменяет число x на сумму цифр, из которых состоит число x
Си. Написать функцию void sum_digits(int * x), которая заменяет число x на сумму цифр, из которых.

Регистрация: 25.11.2010
Сообщений: 77

Лучший ответ

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

Решение

1 2 3
num = int(input('Enter number: ')) x = [int(i) for i in str(num)] print(sum(x))

Добавлено через 27 секунд
может так ?
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
Чисто арифметически:

1 2 3 4 5 6 7
n = int(input('n = ')) summ = 0 while n: summ += n % 10 n //= 10 print(summ)

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

5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003

num = map(int, input('Введите число: ')) print(sum(num))

Регистрация: 25.11.2010
Сообщений: 77
Jabbson,
а ведь точняк
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Посчитать сумму цифр из которых состоит число
Но программу почему-то выводит совсем другое, исправьте, кто может package com.company; public.

Найти сумму и произведение цифр, из которых состоит число
Вводится натуральное число (> 0). Необходимо найти сумму и произведение цифр, из которых состоит.

Если число состоит менее чем из 3-х десятичных цифр, сохранить их сумму, иначе сохранить 0.
Нужно написать программу без вывода на экран. (просто для компилирования в турбо дебагере). Если.

Или воспользуйтесь поиском по форуму:

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

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