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

Мы уже умеем с вами выделять цифры от младшего разряда к старшему, а сегодня мы научимся делать это от старшего разряда к младшему.
Идея алгоритма
Вернемся к примеру из прошлого урока. Нам дано число 123456789. И нам необходимо получить выделить все цифры числа от старшего к младшему.
- 123.456.789 / 100.000.000 = 1
- 123.456.789 % 100.000.000 = 23.456.789
- Повторяем действия
- 23.456.789 / 10.000.000 = 2
- 23.456.789 % 10.000.000 = 3.456.789
Порядок действий мы прослеживаем. Но у нас есть проблема, мы не знаем, как получить с вами первоначальное число? Те самые сто миллионов.
Как получить 100.000.000
Очевидно, что если число измеряется в:
- Сотнях, то это будет / 100;
- Тысячах, то это будет / 1000;
- Десятка тысяч, то это будет / 10000. И т.д.
Все это степени числа 10.
Первое, что нам с вами придется сделать – это научиться считать наше число, на которое будем делить.
Как это делать? Давайте разбираться.
- Почему р = 1? Потому что мы будем домножать каждую итерацию цикла на 10.
- Почему в условии цикла <= n? Мы берем нашу единицу, домножаем ее на 10 и говорим, если она меньше или равна n, то продолжай цикл. До тех пор, пока р не достигнет нужной нам длины. Т.е. раз в нашем числе было 4 цифры, значит в числе р также должно быть 4 цифры (единица и 3 нуля).
Алгоритм разделения числа на цифры
- Вводим число а;
- Запускаем цикл и находим р (степень 10);
- Запускаем второй цикл и:
- — находим цифру по формуле d / р;
- — выводим цифру (или используем ее в задаче);
- — уменьшить d (остаток от деления на р);
- — уменьшить р в 10 раз.
Рассмотрим на примере двоичной системы счисления.
Посмотрите на картинку. Для того чтобы перевести наше число из десятичной системы в двоичную, то достаточно наши числа 10 в программе, заменить на 2.
Решение задач
Перевод в шестнадцатеричную
Дано число N. Требуется перевести его в шестнадцатеричную систему счисления из десятичной.
Формат входных данных
Программе вводится число N (0 ≤ N ≤ 100 000 000) в десятичной системе счисления.
Формат выходных данных
Требуется вывести число N в шестнадцатеричной системе счисления. Цифры большие 10 требуется выводить заглавными латинскими буквами (ответы со строчными латинскими буквами приниматься не будут).
Примеры
входные данные
3802
выходные данные
EDA