Например, если было введено 349, программа должна вывести на экран число 16, так как 3 + 4 + 9 = 16.
Как извлечь отдельные цифры из числа? Если число разделить нацело на десять, в остатке будет последняя цифра этого числа. Например, если 349 разделить нацело на 10, то получится частное 34 и остаток 9. Если потом 34 разделить также, получится частное 3 и остаток 4; далее при делении 3 на 10 получим частное 0 и остаток 3.
В языках программирования почти всегда есть две операции:
1) нахождение целого при делении нацело,
2) нахождение остатка при делении нацело.
В языке программирования Python первая операция обозначается // (двумя знаками деления), а вторая — % (знаком процента). Например:
>>> 34 // 10 3 >>> 34 % 10 4
Алгоритм нахождения суммы цифр трехзначного числа abc (где a — сотни, b — десятки и c — единицы) можно описать так:
- Найти остаток от деления abc на 10, записать его в переменную d1 . Это будет цифра c.
- Избавиться от цифры c в числе abc, разделив его нацело на 10.
- Найти остаток от деления ab на 10, записать его в переменную d2 . Это будет цифра b.
- Избавиться от цифры b в числе ab, разделив его нацело на 10.
- Число a однозначное. Это еще одна цифра исходного числа.
- Сложить оставшееся число a со значениями переменных d1 и d2 .
n = input(«Введите трехзначное число: «) n = int(n) d1 = n % 10 n = n // 10 d2 = n % 10 n = n // 10 print(«Сумма цифр числа:», n + d2 + d3)
Пример выполнения программы:
Как найти сумму цифр числа | СИ ШАРП ДОМАШНИЕ ЗАДАНИЯ # 17
Введите трехзначное число: 742 Сумма цифр числа: 13
Однако, если нам известно, что число состоит из трех разрядов (цифр), есть немного другой способ извлечения цифр из числа:
- Остаток от деления на 10 исходного числа дает последнюю цифру числа.
- Если найти остаток от деления на 100 исходного числа, то мы получи последние две цифры числа. Далее следует разделить полученное двухзначное число нацело на 10, и у нас окажется вторая цифра числа.
- Если исходное трехзначное число разделить нацело на 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() немного сложнее:
Сумма цифр числа (Python)
# Функция 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)
Источник: it-systems.su
Составьте программу которая будет находить сумму цифр числа
Помогите написать программу с подробным описание алгоритма
Найти сумму цифр числа.
Регистрация: 12.01.2011
Сообщений: 19,500
Дык «помогите» или «напишите за меня программу, да, и еще с подробным описанием алгоритма, а я тут посижу и подожду»?
Под помощью подразумевается, что вы пытаетесь сделать что-то сами, показываете код, рассказываете, что не получается и т.д.
Последний раз редактировалось Alex11223; 21.09.2011 в 16:28 .
Пользователь
Регистрация: 31.08.2010
Сообщений: 40
var sum: integer; number: longint; begin sum := 0; write(‘Введите число: ‘); readln(number); while number > 0 do begin sum := sum + (number mod 10); number := (number div 10); end; writeln(‘Сумма цифр числа = ‘, sum); readln; end.
Число 732405
1-я итерация
sum := 0 + (732405 mod 10);
number := (732405 div 10);
2-я итерация
sum := 5 + (73240 mod 10);
number := (73240 div 10);
3-я итерация
sum := 5 + (7324 mod 10);
number := (7324 div 10);
4-я итерация
sum := 9 + (732 mod 10);
number := (732 div 10);
5-я итерация
sum := 11 + (73 mod 10);
number := (73 div 10);
6-я итерация
sum := 14 + (7 mod 10);
number := (7 div 10);
Последний раз редактировалось Viconte; 21.09.2011 в 17:38 .
Источник: www.programmersforum.ru
Сумма цифр числа в Python
В этой статье мы разберем, как определяется сумма цифр числа при помощи кода на Python. Давайте сразу на простом примере поясним, что имеется в виду. Для вычисления такой суммы мы просто складываем цифры, которыми записано число, и при этом игнорируем их разряды. Допустим, у нас есть число 567. Мы можем вычислить сумму его цифр как 5 + 6 + 7 и получить ответ 18.
Наша цель состоит в том, чтобы определить сумму цифр числа, переданного в качестве входных данных в коде на Python.
n = 54 Результат: 9 n = 121 Результат: 4
Сначала мы разбиваем число на отдельные цифры, а затем в качестве результата получаем сумму этих цифр. Чтобы разбить число на цифры, мы можем использовать оператор деления по модулю % , а затем, чтобы сократить число на разряд, можем использовать оператор целочисленного деления // .
Различные способы нахождения суммы цифр числа
Использование встроенных функций str() и int()
Чтобы преобразовать число в строку, используется функция str() . Для преобразования цифровых символов в целое число используется функция int() .