
Дано натуральное трехзначное число. Проверить является ли оно палиндромом (читается одинакового
слева на право и с права налево). Если не является - вывести ближайшее следующее число палиндром. Формат ввода: На первой строке - натуральное трехзначное число. Формат вывода: Если условие выполнено - YES, если нет - то натуральное число. Пример входных данных 432 Пример выходных данных 434 Написать на Паскале

Ответы на вопрос

var x:integer;
begin
readln(x);
if (x mod 10)=(x div 100) then begin writeln('YES');exit;end
else while x mod 10<>x div 100 do x:=x+1;
writeln(x);
end.



Ответ:Привет,я не знаю Паскаль,но объяню логику решения. Решение максимально простое и не требует каких-либо углубленных знаний.
Объяснение:
короч. Для каждой цифры ты берешь переменную(x; y; z) дальше пишешь,если x=z,то это число является палиндромом,если x≠z,то начинаешь прибавлять по единице к z, если z = 10 то пусть будет равно 0,дальше прибавляешь к x +1 и делаешь,то же самое с z и все. реализовать просто используя несколько циклов и все. Удачи
Есть вообще капец творческое решение. ты просто из x-z,если число положительное то прибавляешь в z и все,если 0,то тут пишешь yes,если отрицательное,например, -3,то отнимаешь от x ,тоесть x--3=x+3 и все
Я сейчас увидел код от паскаля(человек сверху написал),ахахаххаха, это что за мусор,а не язык,я,конечно,не полностью понял код,но если ты просто будешь прибавлять по единице к трехзначному числу,то это будет долго и не эффективно,хотя и не прям уж ужасно,так что дерзай,но блин выбрось паскаль и начни с нормальных языков,которые пригодятся.



Конечно, вот программа на Pascal, которая выполняет указанную задачу:
pascalprogram PalindromeChecker; var inputNumber, nextPalindrome: Integer; function IsPalindrome(number: Integer): Boolean; var original, reversed, remainder: Integer; begin original := number; reversed := 0; while number <> 0 do begin remainder := number mod 10; reversed := reversed * 10 + remainder; number := number div 10; end; IsPalindrome := original = reversed; end; function FindNextPalindrome(startNumber: Integer): Integer; begin Inc(startNumber); while not IsPalindrome(startNumber) do Inc(startNumber); FindNextPalindrome := startNumber; end; begin Write('Введите трехзначное число: '); Readln(inputNumber); if IsPalindrome(inputNumber) then Writeln('YES') else begin nextPalindrome := FindNextPalindrome(inputNumber); Writeln(nextPalindrome); end; end.
Программа сначала проверяет, является ли введенное число палиндромом. Если да, выводит "YES". Если нет, она вызывает функцию FindNextPalindrome
, чтобы найти ближайший следующий палиндром и выводит его.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili