C++

Выделение в цикле цифр в числе от младших разрядов к старшим

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

Разделение числа на цифры

Идея алгоритма:
Для каждого числа необходимо найти его разряд.

  1. 1 => единица;
  2. 42 => 4 десятка и 2 единицы;
  3. 829 => 8 сотен, 2 десятка, 9 единиц.

Поиск разрядов числа

Нам дано число: 123456789

Последнюю цифру мы легко найдем, нам достаточно наше число разделить 10 с остатком. А что делать с предпоследней цифрой? Тут как минимум есть два варианта:

  1. /10 – откинули последнюю цифру, а затем снова %10;
  2. %10 и его степень. Способ довольно неудобный. Поэтому мы не будем им пользоваться.

Первый вариант кажется достаточно удобным. Мы будем получать нужную нам цифру в ходе каждой итерации цикла.

  1. 123456789 % 10 = 9;
  2. 123456789 / 10 = 12345678;
  3. Переходим к следующей итерации
  4. 12345678 % 10 = 8;
  5. 12345678 / 10 = 1234567;

И так далее пока не переберем все число.

Алгоритм разделения числа на цифры

Алгоритм разделения числа на цифры

  1. Ввести число a;
  2. Запустить цикл;
  3. Найти цифру при помощи a % 10;
  4. Вывести цифру (или использовать ее в задаче);
  5. Уменьшить а в 10 раз.

Этот цикл будет работать до тех пор, пока n не превратится в 0.

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

Использование алгоритма

Мы можем применять данный алгоритм в этих случаях

  1. Анализ зависимостей в цифрах числа;
  2. Определение присутствия цифры;
  3. Подсчёт цифр;
  4. Подсчёт количества цифр;
  5. Замена цифр в числе;
  6. Анализ чисел в других системах счисления;
  7. Анализ бинарных данных.

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

Разбор задачи Счастливый билет

Задача счастливый билет

Например, мы хотим написать программу, которая проанализирует билет, который нам дали в автобусе, является он счастливым или нет? Если вы не помните или не знали, как это делается, напомню. Билет считается счастливым, когда сумма первых трех чисел равняется сумме трех последних.

Нам вводится номер билета и необходимо проверить, является ли он счастливым.
Давайте посчитаем. Посмотрите на номер нашего билета: 306 450.

  • Если мы просуммируем 3+0+6 == 4+5+0;
  • То получим в первой и второй сумме чисел одинаковое значение 9 == 9;
  • Это означает, что наш билет счастливый.

Все элементарно, но теперь встает вопрос, как же нам разбить наше число на отдельные цифры? А мы уже знаем, как это сделать.

Алгоритм решения

  1. Ввести число;
  2. Разделять его на цифры;
  3. Первые три числа добавлять в sum1;
  4. Последние три числа добавлять в sum2;
  5. Сравнить sum1 и sum2.

Решение задачи Счастливый билет

Разложи на цифры

Дано восьмизначное число, необходимо написать в строку каждую цифру данного числа через пробел, начиная с разряда единиц.
Формат входных данных
Дано целое число N (10 000 000 <= N <= 99 999 999). Формат выходных данных
Строка, состоящая из цифр числа N, начиная с разряда единиц. Числа записываются через пробел.
Примеры
входные данные
48823168
99856775
выходные данные
8 6 1 3 2 8 8 4
5 7 7 6 5 8 9 9

Решение задачи Разложи на цифры

Видео по теме урока

Tags

Related Articles

Leave a Reply

Back to top button
Close