Основы программирования на С++ для начинающих

Задача: Палиндром в массиве

Проверить число в массиве на наличие палиндрома (именно через массив).

задача с решением, палиндром, наличие палиндрома в массиве с++, число палиндром, практика программирования
Определение Палиндром – сайт Википедия

Решение:

Единственное место, которое в коде может вызвать затруднение, это логическое присвоение:

Здесь проверяется равенство символов, отстоящих на i позиций от начала и от конца исследуемой строки. Если результат отрицательный (не равно), то это уже не палиндром, и можно выходить из цикла, а дальнейшие сравнения не проводить. Переменная poli здесь не является необходимой, и оставлена для наглядности – можно принимать решение (if) прямо из проверяемого условия.

Проверки делаются до середины строки, потому что дальнейшее продолжение цикла (из-за симметрии условия) только повторит то, что уже сделано ранее.

Выполнение:

задача с решением, палиндром, наличие палиндрома в массиве с++, число палиндром, практика программированияПримечание:

Как легко смогут заметить наблюдательные читатели, этот код проверит на палиндром не только запись числа, но и любую текстовую строку, при выполнении таких условий:

    • строка содержит только латинские (не русские, не китайские, …) литеры (интернациональные литеры в Unicode представляются более чем 1-м байтом);
    • строка не содержит символов пробела и знаков препинания (потому что в определениях палиндромов эти символы, обычно, исключают из сравнений: “Я иду с мечем судия“, “На в лоб, болван“).

5 thoughts on “Задача: Палиндром в массиве

  1. Ошибка в коде. Все двузначные числа, например: 11, 22, 33, …, 99 программа распознает как “не палиндромы”, хотя это не так. Код требует доработки.

    1. Никакой ошибки! Вот проверка прогоном в операционной системе Linux с компилятором GCC, который куда точнее соответствует стандарту синтаксиса C++:

      $ ./palindrom-
      Введите любое положительное целое : 11
      число палиндром
      Введите любое положительное целое : 2
      число палиндром
      Введите любое положительное целое : 232
      число палиндром
      Введите любое положительное целое : 233
      число не палиндром
      Введите любое положительное целое : 2332
      число палиндром
      Введите любое положительное целое : 23432
      число палиндром
      Введите любое положительное целое : 234432
      число палиндром
      Введите любое положительное целое : ^C

      Не знаю, почему у вас получаются такие результаты (возможно нужно расставить дополнительные скобки из-за приоритетов операций).

  2. Торговая фирма «Восток» в конце каждого месяца подводит итоги, то есть вносит запись в книгу расходы и выручку от продажи. Составит программу для вычисления суммы полученных доходов за каждый квартал и определения в каком квартале был получен минимальный доход.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *