Как найти сумму цифр трехзначного натурального числа

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

Вводится трехзначное число. Написать программу, которая вычисляет сумму его цифр.
Решение задачи на языке программирования 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 – единицы) можно описать так:

  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)

Больше задач в PDF

Перейти к содержанию

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

Просмотров 8.4к. Обновлено 29 октября 2021

Если трехзначное число нацело разделить на 100, то получим число сотен, т.е. первую цифру этого числа.

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

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

  1. Разделить число нацело на 10. Тем самым избавиться от последней цифры трехзначного числа, превратив его в двузначное.
  2. Найти остаток от деления полученного двузначного числа на 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.


Язык Си

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


#include

main() {
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 // 100

print("Сумма цифр числа:", 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 n

a = n 100
b = n 10 % 10
c = n % 10

print a+b+c
print a*b*c


Обратите внимание на знак целочисленного деления. Это обратный слэш (), в то время как обычное деление обозначается обычным слэшем (/).

Обложка к статье "Нахождение суммы и произведения цифр трехзначного числа в Python"

На чтение 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}")
  1. Сначала мы получаем трехзначное число от пользователя, используя функцию input(). Функция input() возвращает строку, которую мы преобразуем в целое число с помощью функции int().
  2. Затем мы получаем каждую цифру числа, используя операции целочисленного деления и остатка от деления. Для первой цифры мы используем целочисленное деление на 100, чтобы получить первую цифру числа. Для второй цифры мы используем операцию остатка от деления на 100, чтобы получить последние две цифры числа, а затем выполняем целочисленное деление на 10, чтобы получить вторую цифру числа. Для третьей цифры мы используем операцию остатка от деления на 10, чтобы получить последнюю цифру числа.
  3. Затем мы вычисляем сумму цифр, складывая каждую цифру, и сохраняем ее в переменную sum_of_digits.
  4. Мы также вычисляем произведение цифр, умножая каждую цифру, и сохраняем его в переменную product_of_digits.
  5. Наконец, мы выводим сумму и произведение цифр с помощью функции 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

Метки нет (Все метки)


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

ТАКАЯ ЗАДАЧКА)
Вводим трехзначное натуральное число.Нужно найти сумму чисел этого числа.

Pascal
1
2
3
4
5
6
7
8
9
10
11
program nomer;
var
N:real;
begin
writeln('vvedite chislo ');
readln(N);
N:=(N div 100)+((N div 10) mod 10)+(N mod 10);
writeln('summa 4ucel ravna: ',N);
writeln;
readln;
end.

В СТРОЧКЕ С ” 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 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
var
b:real;
n:integer;
begin
writeln('vvedite chislo ');
readln(N);
b:=(N div 100)+((N div 10) mod 10)+(N mod 10);
writeln('summa 4ucel ravna: ',b);
writeln;
readln;
end.



0



0 / 0 / 0

Регистрация: 18.12.2010

Сообщений: 17

11.01.2011, 19:49

 [ТС]

4

нееее,мне преподаватель сказал что именно в этой строчке ошибка :
“”N:=(N div 100)+((N div 10) mod 10)+(N mod 10)”

Добавлено через 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

Цитата
Сообщение от andrei63
Посмотреть сообщение

я написал, работает, что еще для счастья нужно

блин я незнаю(((
но препод грузит меня и говорит что неверно(



0



17 / 43 / 5

Регистрация: 26.10.2010

Сообщений: 447

11.01.2011, 19:53

7

Цитата
Сообщение от andrei63
Посмотреть сообщение

я написал, работает, что еще для счастья нужно

Она действительно работает!



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



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

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



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

4188 / 1289 / 237

Регистрация: 27.07.2009

Сообщений: 3,961

11.01.2011, 20:14

12

Цитата
Сообщение от Сидоренко
Посмотреть сообщение

Он говорит что ошибка не в том что N:real.

а мне как-то все-равно что он говорит. Я знаю, что ошибка в этом и могу это доказать:
операция DIV допустима

только для целых чисел

. А он пытается вещественное число поделить на целое.



0



0 / 0 / 0

Регистрация: 18.12.2010

Сообщений: 17

11.01.2011, 20:16

 [ТС]

13

ну задача то правильно решена?

Добавлено через 1 минуту

Цитата
Сообщение от TAVulator
Посмотреть сообщение

а мне как-то все-равно что он говорит. Я знаю, что ошибка в этом и могу это доказать:
операция DIV допустима

только для целых чисел

. А он пытается вещественное число поделить на целое.

напиши пожалуйста как правильно она должна быть написанна в паскале!?



0



TAVulator

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

4188 / 1289 / 237

Регистрация: 27.07.2009

Сообщений: 3,961

11.01.2011, 20:19

14

Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

так:

Pascal
1
2
3
4
5
6
7
8
9
10
11
program nomer;
var
N:integer;
begin
writeln('vvedite chislo ');
readln(N);
N:=(N div 100)+((N div 10) mod 10)+(N mod 10);
writeln('summa 4ucel ravna: ',N);
writeln;
readln;
end.

и какого ражна ты схватился за Real? Если у тебя в задаче написано, что дано натуральное число?



0



0 / 0 / 0

Регистрация: 18.12.2010

Сообщений: 17

11.01.2011, 20:31

 [ТС]

15

и какого ражна ты схватился за Real? Если у тебя в задаче написано, что дано натуральное число?[/QUOTE]

считает неправильно!!!
например пишу 123 ,а он ответ выдает 10 (((



0



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

4188 / 1289 / 237

Регистрация: 27.07.2009

Сообщений: 3,961

11.01.2011, 20:39

16

Цитата
Сообщение от Егорчике
Посмотреть сообщение

считает неправильно!!!
например пишу 123 ,а он ответ выдает 10 (((

не обманывай:

vvedite chislo
123
summa 4ucel ravna: 6



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

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