Написать функцию, которая «переворачивает» число, то есть возвращает число, в котором цифры стоят в обратном порядке - PascalABC.NET
Формулировка задачи:
Здравствуйте. Накопились некоторые долги, которые откладывал из-за того, что что-то не получалось с решением. Прошу помощи.
Напишите функцию, которая «переворачивает» число, то есть возвращает число, в котором цифры стоят в обратном порядке. Пример: Введите натуральное число: 1234 После переворота: 4321.
Написал через строку, но сказали, что нужно и с типом Integer. Сделал, но что-то не так с условием: добавляет ноль к перевернутому числу. Точнее, что с условием не так я знаю (лишний раз проходит цикл из-за того, что число не стало меньше нуля), но исправить не получается. Вот код:Заранее благодарю за помощь.
Решение задачи: «Написать функцию, которая «переворачивает» число, то есть возвращает число, в котором цифры стоят в обратном порядке»
textual
Листинг программы
function NAOBOROT(a: integer): integer; var c: integer; begin c:=0; while a > 0 do begin c:=10*c+a mod 10; a := a div 10; end; NAOBOROT := c; end; var a, b: integer; begin Readln(a); Writeln(NAOBOROT(a)); end.
Объяснение кода листинга программы
- Задана функция NAOBOROT, которая принимает целочисленный аргумент a и возвращает перевернутое число.
- Внутри функции объявлена переменная c, которая будет использоваться для хранения перевернутого числа. Изначально ей присваивается значение 0.
- Далее, в цикле while, происходит перебор всех цифр исходного числа a.
- В каждой итерации цикла к переменной c добавляется последняя цифра числа a (a mod 10), умноженная на 10 в степени количества итераций, и делается div на 10 для получения следующего разряда числа a.
- После окончания цикла, в переменной c содержится перевернутое число, которое возвращается из функции.
- В основной части программы запрашивается число a с помощью функции Readln и выводится результат вызова функции NAOBOROT с аргументом a с помощью функции Writeln.