Перевірити, чи є слово або число паліндромом на c

Перевірити, чи є слово або число паліндромом на c

У даній статті вирішується завдання по реалізації програми (коду) на C ++ для перевірки, чи є слово, рядок або число паліндромом. Програма повинна просити ввести рядок (не важливо слово це або число), перевіряти, чи є вона паліндромом і повертати результат.

Що таке паліндром?

Паліндром - це рядок (або число), яке можна прочитати однаково справа наліво, або зліва направо.

Наприклад, слово «кіт» не є паліндромом, а слово «потоп» є паліндромом. Також і з числами: число 12314 - не паліндром, число 345543 - паліндром.

Зрозумівши це, можна починати реалізовувати алгоритм програми.

Функція перевірки слова на палідром в C ++

Для визначення, чи є рядок паліндромом. напишемо функцію, яка прийме на вхід рядок (об'єкт string), а на виході поверне логічне значення (тип даних bool). Рядок буде містити слово або число, яке функція перевірить на паліндромний. Вихідна значення true буде відповідати тому, що рядок є паліндромом, false буде відповідати тому, що рядок НЕ є паліндромом.

Зверніть увагу, що рядок - це, по суті своїй, звичайний одномірний масив.

Тому функція буде просто порівнювати перший і останній елемент масиву, після порівняє другий і передостанній елемент і так далі до середини. Якщо всі вони рівні, значить рядок є паліндромом. Нічого складного.

Реалізуємо це у вигляді коду.

Для початку необхідно визначити, скільки символів в рядку, для цього скористаємося методом length ().

Зверніть увагу, в циклі є умова. Якщо i-ий елемент не дорівнює елементу len-i-1, то відразу повертається false (Тобто не паліндром).

Масиви в C ++ нумеруються від 0, тому щоб отримати перший елемент рядка, нам потрібно дістати 0-ой елемент з масиву, а щоб останній, то нам потрібно дістати len-1.

Як працює функція перевірки на паліндром

Припустимо, у нас слово «мотор», то len буде дорівнює 5.

Щоб отримати значення останньої букви, необхідно звернутися до масиву рядки з індексом len-1 = 4. А щоб отримати значення першої букви - звертаємося до елементу 0.

Для наочності трохи визуализируем роботу функції:

1.Получаем слово «грудку».

Порівнюємо до і до, вони рівні, йдемо далі.

Порівнюємо про і про, вони рівні. Далі цикл зупиняється, тому що запущений до len / 2, а це 5/2 = 2. У C ++ результатом цілочисельного ділення є ціле число з відкинутою дробової частиною.

5. В кінці функції повертається true. Що означає, що слово паліндром.

Якби під час порівнянь букв вийшло так, що вони НЕ рівні, то функція відразу б завершила роботу і повернула значення false. Що означає, що слово не паліндром.

Використовуємо нашу функцію перевірки на паліндром в програмі на C ++

Тепер нашу функцію можна вставити в програму на C ++ і використовувати. Напишемо невеликий додаток, яке просить користувача ввести слово (або число) в консоль, а після цього повідомляє йому, чи є введене слово паліндромом.

Код нашого застосування - це і є рішення задачі «Перевірити, чи є слово паліндромом на C ++»

Код програми на C ++: