Сумма цифр трехзначного числа
Вводится трехзначное число. Написать программу, которая вычисляет сумму его цифр.
Решение задачи на языке программирования Python
Например, если было введено 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
Примечание. Операции деления нацело и нахождения остатка с точки зрения арифметики применимы только к целым числам. Но в Python их можно использовать и по отношению к дробным числам:
>>> 34.5 % 10 4.5 >>> 34.5 // 10 3.0 >>> 34.5 // 12.9 2.0
Алгоритм нахождения суммы цифр трехзначного числа 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)
Пример выполнения программы:
Введите трехзначное число: 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()
немного сложнее:
# Функция 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)
Больше задач в PDF
Перейти к содержанию
Сумма и произведение цифр числа
Просмотров 8.4к. Обновлено 29 октября 2021
Если трехзначное число нацело разделить на 100, то получим число сотен, т.е. первую цифру этого числа.
Если найти остаток от деления на 10 любого целого числа, то этот остаток покажет число единиц в этом числе. Таким образом извлекается последняя цифра числа.
Чтобы извлечь среднюю цифру трехзначного числа (показывающую количество десятков), можно выполнить два действия:
- Разделить число нацело на 10. Тем самым избавиться от последней цифры трехзначного числа, превратив его в двузначное.
- Найти остаток от деления полученного двузначного числа на 10. Этот остаток и будет средняя цифра первоначального трехзначного числа.
Извлекая вышеописанным способом цифры числа их надо присвоить переменным. Т.к. цифр три, то и переменных будет три. После этого выполнить сложение и умножение значений переменных.
Pascal
произведение цифр числа паскаль и сумма цифр числа паскаль
var
n: integer;
a,b,c: byte;
begin
readln(n);
a := n div 100;
b := n div 10 mod 10;
c := n mod 10;
writeln('Сумма: ',a+b+c);
writeln('Произведение: ',a*b*c);
end.
Язык Си
произведение цифр числа си и сумма цифр числа си
#includemain() {
int n,a,b,c;
scanf("%d", &n);
a = n / 100;
b = n / 10 % 10;
c = n % 10;
printf("Сумма: %dn", a+b+c);
printf("Произведение: %dn", a*b*c);
}
349
Сумма: 16
Произведение: 108
Целочисленное деление выполняется в том случае, если оба операнда целые. Т.е. у целочисленного деления нет специального знака, а выбор между ним и обычным делением зависит от операндов. Если хотя бы один из операндов вещественное число, то и деление будет обычным.
Python
произведение цифр числа Python и сумма цифр числа Python
n = input("Введите трехзначное число: ")
n = int(n)d1 = n % 10
d2 = n % 100 // 10
d3 = n // 100print("Сумма цифр числа:", d1 + d2 + d3)
print("Произведение цифр числа:", d1 * d2 * d3)
Введите трехзначное число: 742
Сумма цифр числа: 13
Произведение цифр числа: 56
КуМир
алг сумма цифр
нач
ввод n
a := div(n,100)
b := mod(div(n,10),10)
c := mod(n,10)
вывод "Сумма: ", a+b+c, нс
вывод "Произведение: ", a*b*c, нс
кон
Basic-256
input na = n 100
b = n 10 % 10
c = n % 10print a+b+c
print a*b*c
Обратите внимание на знак целочисленного деления. Это обратный слэш (), в то время как обычное деление обозначается обычным слэшем (/).
На чтение 3 мин Просмотров 1.6к. Опубликовано
Данная статья посвящена решению задачи в Python на нахождение суммы и произведения цифр трехзначного числа, которое вводит пользователь. Решение данной задачи может быть полезным для начинающих программистов, которые хотят улучшить свои навыки в работе с циклами, строками и математическими операциями в Python.
Нахождение суммы и произведения цифр трехзначного числа с помощью арифметических операций
Решить данную задачу можно с помощью применения простых математических операций. Сначала посмотри код, а после разберём его подробнее:
num = int(input("Введите трехзначное число: "))
# Получение цифр числа
digit1 = num // 100
digit2 = (num % 100) // 10
digit3 = num % 10
# Вычисление суммы цифр
sum_of_digits = digit1 + digit2 + digit3
print(f"Сумма цифр числа {num} равна {sum_of_digits}")
# Вычисление произведения цифр
product_of_digits = digit1 * digit2 * digit3
print(f"Произведение цифр числа {num} равно {product_of_digits}")
- Сначала мы получаем трехзначное число от пользователя, используя функцию
input()
. Функцияinput()
возвращает строку, которую мы преобразуем в целое число с помощью функцииint()
. - Затем мы получаем каждую цифру числа, используя операции целочисленного деления и остатка от деления. Для первой цифры мы используем целочисленное деление на 100, чтобы получить первую цифру числа. Для второй цифры мы используем операцию остатка от деления на 100, чтобы получить последние две цифры числа, а затем выполняем целочисленное деление на 10, чтобы получить вторую цифру числа. Для третьей цифры мы используем операцию остатка от деления на 10, чтобы получить последнюю цифру числа.
- Затем мы вычисляем сумму цифр, складывая каждую цифру, и сохраняем ее в переменную
sum_of_digits
. - Мы также вычисляем произведение цифр, умножая каждую цифру, и сохраняем его в переменную
product_of_digits
. - Наконец, мы выводим сумму и произведение цифр с помощью функции
print()
. Мы используем символы форматирования{}
для вставки переменныхnum
,sum_of_digits
иproduct_of_digits
в строку.
Мы можем использовать цикл while
и оптимизировать наш код для работы с целочисленными числами любого порядка:
# Получаем трехзначное число от пользователя
num = int(input("Введите трехзначное число: "))
# Инициализируем переменные для хранения суммы и произведения цифр
digit_sum = 0
digit_product = 1
# Разбиваем число на цифры с помощью операций деления и остатка от деления
while num != 0:
# Получаем последнюю цифру числа
digit = num % 10
# Добавляем ее к сумме цифр
digit_sum += digit
# Умножаем ее на произведение цифр
digit_product *= digit
# Убираем последнюю цифру из числа
num //= 10
# Выводим результаты на экран
print("Сумма цифр:", digit_sum)
print("Произведение цифр:", digit_product)
Нахождение суммы и произведения цифр трехзначного числа с помощью цикла for и извлечения символов строки
Для нашей задачи мы можем обойти его цифры, извлекая их из строки одну за другой, и вычислить сумму и произведение.
Вот пример решения нашей задачи:
num = input("Введите трехзначное число: ")
sum = 0
product = 1
for digit in num:
sum += int(digit)
product *= int(digit)
print("Сумма цифр:", sum)
print("Произведение цифр:", product)
Здесь мы сначала создаем переменные sum
и product
для хранения суммы и произведения цифр соответственно.
Далее мы используем цикл for
для обхода каждой цифры числа. Внутри цикла мы преобразуем каждую цифру из строки в целое число с помощью функции int()
и добавляем его к переменной sum
. Также мы умножаем каждую цифру на переменную product
, чтобы накапливать их произведение.
Наконец, мы выводим результаты на экран с помощью функции print()
.
Данный код будет работать для целых чисел любого порядка.
Егорчике 0 / 0 / 0 Регистрация: 18.12.2010 Сообщений: 17 |
||||
1 |
||||
Найти сумму цифр трехзначного числа11.01.2011, 19:39. Показов 96087. Ответов 15 Метки нет (Все метки)
ТАКАЯ ЗАДАЧКА)
В СТРОЧКЕ С ” N:=(N div 100)+((N div 10) mod 10)+(N mod 10) ” ОШИБКА,ПОМОГИТЕ ПОЖАЛУЙСТА ЕЁ ИСПРАВИТЬ!!! ВОПРОС ЖИЗНИ И СМЕРТИ !!!!
0 |
17 / 43 / 5 Регистрация: 26.10.2010 Сообщений: 447 |
|
11.01.2011, 19:43 |
2 |
найти сумму чисел этого числа Как это?
0 |
andrei63 141 / 135 / 69 Регистрация: 15.12.2009 Сообщений: 343 |
||||
11.01.2011, 19:45 |
3 |
|||
Сообщение было отмечено mik-a-el как решение Решение
0 |
0 / 0 / 0 Регистрация: 18.12.2010 Сообщений: 17 |
|
11.01.2011, 19:49 [ТС] |
4 |
нееее,мне преподаватель сказал что именно в этой строчке ошибка : Добавлено через 1 минуту
Как это? ну сумму чисел:например 567,это 5+6+7 !!!
0 |
141 / 135 / 69 Регистрация: 15.12.2009 Сообщений: 343 |
|
11.01.2011, 19:50 |
5 |
я написал, работает, что еще для счастья нужно
0 |
0 / 0 / 0 Регистрация: 18.12.2010 Сообщений: 17 |
|
11.01.2011, 19:52 [ТС] |
6 |
я написал, работает, что еще для счастья нужно блин я незнаю(((
0 |
17 / 43 / 5 Регистрация: 26.10.2010 Сообщений: 447 |
|
11.01.2011, 19:53 |
7 |
я написал, работает, что еще для счастья нужно Она действительно работает!
0 |
141 / 135 / 69 Регистрация: 15.12.2009 Сообщений: 343 |
|
11.01.2011, 19:56 |
8 |
блин я незнаю((( как узнаешь, пиши
0 |
Почетный модератор 64286 / 47585 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
|
11.01.2011, 19:56 |
9 |
Во собралась толпа грамотеев! Вы бы сначала выучили чем цифры от чисел отличаются, потом в программирование лезли бы, смотреть противно…
0 |
⚽ 4188 / 1289 / 237 Регистрация: 27.07.2009 Сообщений: 3,961 |
|
11.01.2011, 20:01 |
10 |
Нужно найти сумму чисел этого числа. грамотеи… цифры от чисел отличить не могу… позор! Добавлено через 44 секунды Не по теме: Не успел )) Puporev опередил ))) Добавлено через 1 минуту
ОШИБКА,ПОМОГИТЕ ПОЖАЛУЙСТА ЕЁ ИСПРАВИТЬ!!! ошибка в том, что ты пытаешься вещественное число делить нацело…
0 |
17 / 43 / 5 Регистрация: 26.10.2010 Сообщений: 447 |
|
11.01.2011, 20:07 |
11 |
*****
0 |
⚽ 4188 / 1289 / 237 Регистрация: 27.07.2009 Сообщений: 3,961 |
|
11.01.2011, 20:14 |
12 |
Он говорит что ошибка не в том что N:real. а мне как-то все-равно что он говорит. Я знаю, что ошибка в этом и могу это доказать: только для целых чисел . А он пытается вещественное число поделить на целое.
0 |
0 / 0 / 0 Регистрация: 18.12.2010 Сообщений: 17 |
|
11.01.2011, 20:16 [ТС] |
13 |
ну задача то правильно решена? Добавлено через 1 минуту
а мне как-то все-равно что он говорит. Я знаю, что ошибка в этом и могу это доказать: только для целых чисел . А он пытается вещественное число поделить на целое. напиши пожалуйста как правильно она должна быть написанна в паскале!?
0 |
TAVulator ⚽ 4188 / 1289 / 237 Регистрация: 27.07.2009 Сообщений: 3,961 |
||||
11.01.2011, 20:19 |
14 |
|||
Сообщение было отмечено mik-a-el как решение Решениетак:
и какого ражна ты схватился за Real? Если у тебя в задаче написано, что дано натуральное число?
0 |
0 / 0 / 0 Регистрация: 18.12.2010 Сообщений: 17 |
|
11.01.2011, 20:31 [ТС] |
15 |
и какого ражна ты схватился за Real? Если у тебя в задаче написано, что дано натуральное число?[/QUOTE] считает неправильно!!!
0 |
⚽ 4188 / 1289 / 237 Регистрация: 27.07.2009 Сообщений: 3,961 |
|
11.01.2011, 20:39 |
16 |
считает неправильно!!! не обманывай: vvedite chislo
0 |
- Home
- Решения с «ACMP – Школа программиста»
- Решение задачи №1112 «Сумма цифр числа
» с ACMP
Решение задачи №1112 «Сумма цифр числа
» с ACMP
Условие задачи
Сумма цифр числа.
Найдите сумму цифр трехзначного натурального числа.
Входные данные
Входной файл INPUT.TXT содержит трехзначное натуральное число.
Выходные данные
В выходной файл OUTPUT.TXT выведите сумму цифр заданного числа.
Решение на C++
#include <iostream>
using namespace std;
main()
{
int a,b,c,d;
cin >> a;
b= a / 100;
c= a / 10;
c= c %10;
d= a % 10;
a=b+c+d;
cout << a;
}
Условия задач взяты с сайта acmp.ru