Решение задачи №590
Условие задачи №590:
Сформировать число, представляющее собой реверсную (обратную в порядке следования разрядов) запись заданного трехзначного числа. Например, для числа 341 таким будет 143.Давайте разберемся с условием. В нашем случае с клавиатуры вводится некоторое трехзнач-ное число (трехзначными называются числа, в записи которых три разряда (то есть три цифры), например: 115, 263, 749 и т. д.). Нам необходимо получить в некоторой переменной число, которое будет представлять собой реверсную запись введенного числа. Другими словами, нам нужно перевернуть введенное число «задом наперед», представить результат в некоторой переменной и вывести его на экран.
Решение
Подробное решение с описаниемОпределимся с выбором переменных и их количеством. Ясно, что одна переменная нужна для записи введенного числа с клавиатуры, мы обозначим ее как n. Так как нам нужно переставить разряды числа n в некотором порядке, следует для каждого из них также предусмотреть отдельные переменные. Обозначим их как a (для разряда единиц), b (для разряда десятков) и c (для разряда сотен).
Теперь можно начать запись самого алгоритма. Будем разбирать его поэтапно:
1) Вводим число n;
2) Работаем с разрядами числа n. Как известно, последний разряд любого числа в десятич-ной системе счисления – это остаток от деления этого числа на 10. В терминах языка Pascal это означает, что для получения разряда единиц нам необходимо присвоить переменной a остаток от деления числа n на 10. Этому шагу соответствует следующий оператор:
1 | a := n mod 10; |
Получив разряд единиц, мы должны отбросить его, чтобы иметь возможность продол-жить работу с разрядом десятков. Для этого разделим число n на 10. В терминах Pascal, опять же, это означает: присвоить переменной n результат от деления без остатка числа n на 10. Это мы сделаем с помощью оператора
1 | n := n div 10; |
3) Очевидно, что после выполнения п. 2 в переменной n будет храниться двухзначное чис-ло, состоящее из разряда сотен и разряда десятков исходного. Теперь, выполнив те же самые действия еще раз, мы получим разряд десятков исходного числа, но его уже нужно присваивать переменной b.
4) В результате в переменной n будет храниться однозначное число – разряд сотен исходно-го числа. Мы можем без дополнительных действий присвоить его переменной c.
5) Все полученные в переменных числа – однозначные. Теперь переменная n нам больше не нужна, и в ней нужно сформировать число-результат, в котором a будет находиться в разряде сотен, b – десятков, c – единиц. Легко понять, что для этого нам следует умно-жить a на 100, прибавить к полученному числу b, умноженное на 10 и c без изменения, и весь этот результат присвоить переменной c. Это можно записать так:
1 | n := 100 * a + 10 * b + c; |
6) Далее остается только вывести полученное число на экран.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | program ReverseNum; var n, a, b, c: word; begin readln(n); a := n mod 10; n := n div 10; b := n mod 10; n := n div 10; c := n; n := 100 * a + 10 * b + c; writeln(n)end. |