C++

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

Мы уже умеем с вами выделять цифры от младшего разряда к старшему, а сегодня мы научимся делать это от старшего разряда к младшему.

Идея алгоритма

Вернемся к примеру из прошлого урока. Нам дано число 123456789. И нам необходимо получить выделить все цифры числа от старшего к младшему.

  1. 123.456.789 / 100.000.000 = 1
  2. 123.456.789 % 100.000.000 = 23.456.789
  3. Повторяем действия
  4. 23.456.789 / 10.000.000 = 2
  5. 23.456.789 % 10.000.000 = 3.456.789

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

Как получить 100.000.000

Очевидно, что если число измеряется в:

  1. Сотнях, то это будет / 100;
  2. Тысячах, то это будет / 1000;
  3. Десятка тысяч, то это будет / 10000. И т.д.

Все это степени числа 10.

Первое, что нам с вами придется сделать – это научиться считать наше число, на которое будем делить.

Разделение числа на цифры (часть 1)

Как это делать? Давайте разбираться.

  1. Почему р = 1? Потому что мы будем домножать каждую итерацию цикла на 10.
  2. Почему в условии цикла <= n? Мы берем нашу единицу, домножаем ее на 10 и говорим, если она меньше или равна n, то продолжай цикл. До тех пор, пока р не достигнет нужной нам длины. Т.е. раз в нашем числе было 4 цифры, значит в числе р также должно быть 4 цифры (единица и 3 нуля).

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

Разделение числа на цифры (часть 2)

  1. Вводим число а;
  2. Запускаем цикл и находим р (степень 10);
  3. Запускаем второй цикл и:
  4. — находим цифру по формуле d / р;
  5. — выводим цифру (или используем ее в задаче);
  6. — уменьшить d (остаток от деления на р);
  7. — уменьшить р в 10 раз.

Рассмотрим на примере двоичной системы счисления.

Перевод числа в двоичную систему счисления

Посмотрите на картинку. Для того чтобы перевести наше число из десятичной системы в двоичную, то достаточно наши числа 10 в программе, заменить на 2.

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

Перевод в шестнадцатеричную

Дано число N. Требуется перевести его в шестнадцатеричную систему счисления из десятичной.
Формат входных данных
Программе вводится число N (0 ≤ N ≤ 100 000 000) в десятичной системе счисления.
Формат выходных данных
Требуется вывести число N в шестнадцатеричной системе счисления. Цифры большие 10 требуется выводить заглавными латинскими буквами (ответы со строчными латинскими буквами приниматься не будут).
Примеры
входные данные
3802
выходные данные
EDA

Решение задачи Перевод в шестнадцатеричную

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

Tags

Related Articles

Leave a Reply

Back to top button
Close