Составить программу которая определяет является ли заданное натуральное число палиндромом

Формулировка. Дано натуральное число n. Проверить, представляет ли собой палиндром его десятичная запись.

Решение. Задача является общим случаем задачи 9. Чтобы решить ее, необходимо разделить число n на две половины одинаковой длины, отбросить серединную цифру в случае нечетной длины n и проверить равенство одной из частей реверсной записи другой части.

Так как нам заранее неизвестна десятичная разрядность n, мы можем посчитать ее с помощью следующего цикла (подробнее это описывалось в предыдущей задаче):

while a <> 0 do begin

Теперь рассмотрим варианты проверки числа на палиндром вместе с разбором на примере.

Пусть дано число нечетной длины, например, 79597. Мы можем отделить его правую половину 97, проведя ряд последовательных делений с взятием остатка в цикле из digits div 2 повторений. При этом необходимо сразу сформировать ее реверс в переменную right (мы делали это в задаче 31):

for i := 1 to digits div 2 do begin

right := right * 10;

Информатика 8 класс. Задание 6,7 стр 134

right := right + n mod 10;

Так как число нечетно, нужно отбросить его центральную цифру 5, после чего в переменной n (равной 79) будет содержаться левая половина числа, а в переменной right (также равной 79) – его перевернутая правая половина. Они равны, следовательно, ответ положительный.

Тот же порядок действий применяется и для чисел четной длины, однако теперь нам не нужно ничего отбрасывать после накопления реверсной левой части числа в переменную right, так как в числах четной длины нет серединной цифры. Например, дано число 1551: переворачиваем правую половину числа 51 (получим 15) и сравниваем ее с левой половиной: 15 = 15, ответ положительный.

Читайте также:
Siemens nx похожие программы

Эти допущения говорят о том, что необходима проверка длины числа n на нечетность и, соответственно, отбрасывание серединной цифры в случае нечетности:

if odd(digits) then n := n div 10;

Код:

  1. program CheckPalindrome;
  2. var
  3. n, a, right: longint;
  4. digits, i: byte;
  5. begin
  6. readln(n);
  7. a := n;
  8. digits := 0;
  9. while a <> 0 do begin
  10. a := a div 10;
  11. inc(digits)
  12. end;
  13. right := 0;
  14. for i := 1 to digits div 2 do begin
  15. right := right * 10;
  16. right := right + n mod 10;
  17. n := n div 10
  18. end;
  19. if odd(digits) then n := n div 10;
  20. writeln(n = right)
  21. end.

Выполним «ручную прокрутку» алгоритма на числе 147741:

1) Считаем длину числа, она равна 6 (строки 11-14);

2) В цикле из 6 div 2 = 3 повторений прибавляем к right (формируя реверсную запись) последние три цифры числаn, после чего отбрасываем их и имеем в n 147, в right 147 (строки 16-20);

3) Так как odd(digits) = odd(6) = false, ничего не делаем (строка 21);

4) Выводим на экран значение выражения n = right – ответ положительный (строка 22).

Источник: pascalzadachi.ru

Математические операции для поиска палиндрома

Палиндром в Pascal. Как его найти?

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

Палиндром — это число, слово, текст, которые читаются одинаково в обоих направлениях. Вот пару примеров:

  • 1221
  • Шалаш
  • Топот
  • А роза упала на лапу Азора
  • 404

Сегодняшняя программа будет находить числа — палиндромы. Разумеется, программу можно модифицировать под то, чтобы она находила так же и слова и даже текст, но это уже усложненные модификации.

В конце будет ссылка на скачивание кода программы.

Поэтому поехали!

1. Типы данных

Определим типы данных

В этой программе возьмем тип longint вместо обычного integer . Сделано это по причине того, что пользователь может ввести палиндром, состоящий из очень большого числа цифр.

Читайте также:
Что значит преемственность учебных программ

Num — наше введенное число

A, B, C — вспомогательные переменные для определения, относится ли число к палиндромам.

Источник: dzen.ru

Дано натуральное число. Определить является ли оно палиндромом. Написать процедуру получения нового числа. Паскаль

Найди верный ответ на вопрос ✅ «Дано натуральное число. Определить является ли оно палиндромом. Написать процедуру получения нового числа. Паскаль . » по предмету Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.

Новые вопросы по информатике

Сколько всего различных символов может быть в восьмибитной текстовой кодировке? 1) 8 2) 512 3) 256 4) 65536

Паскаль. Написать программу подсчета количества отрицательных чисел среди любых 10 вводимых. 1 программа с использованием while, 2 программа — repeat

Сколько кб информации содержит сообщение объемом 2^20 бит?

Информатика пользователь создад сообщение из 256 символов в кодировке Unicode в которой каждый символ кодируется 16 битами после редактирования информационный объем сообщения составил 3072 бит Определите сколько символов удалили сообщение если его

Запишите числа в беззнаковом коде (формат 1 байт): а) 31; б) 163; в) 65; г) 128.

Главная » Информатика » Дано натуральное число. Определить является ли оно палиндромом. Написать процедуру получения нового числа. Паскаль

Источник: urokam.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru