Перевірити число в масиві на наявність паліндрома (саме через масив).
Рішення:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <iostream> #include <cstring> using namespace std; int main() { setlocale(LC_ALL, "rus"); char s[20]; while (true) { cout << "Введите любое положительное целое : "; cin >> s; bool poli = true; for (unsigned i = 0; i <= strlen(s) / 2 + 1; i++) if (!(poli = s[i] == s[strlen(s) - i - 1])) break; cout << "число " << (poli ? "" : "не ") << "палиндром" << endl; } return 0; } |
Єдине місце, яке в коді може викликати утруднення, це логічне привласнення:
1 | poli = s[i] == s[strlen(s) - i - 1] |
Тут перевіряється рівність символів, otstoyashtih з i позицій від початку і від кінця досліджуваної рядки. Якщо результат негативний (не дорівнює), то це вже не паліндром, і можна виходити з циклу, а подальші порівняння не проводити. Мінлива Poli тут не є необхідною, і залишена для наочності – можна приймати рішення (if) прямо з перевіряється умови.
перевірки робляться до середини строки, тому що подальше продовження циклу (через симетрії умови) тільки повторить те, що вже зроблено раніше.
виконання:
Як легко зможуть помітити наглядові читачі, цей код перевірить на паліндром не тільки запис числа, але і будь-яку текстову рядок, при виконанні таких умов:
- рядок містить только латинські (не росіяни, не китайські, …) літери (інтернаціональні літери в Unicode представляються більш ніж 1-м байтом);
- рядок не містить символів пробілу і розділових знаків (тому що в визначеннях палиндромов ці символи, зазвичай, виключають з порівнянь: “Я иду с мечем судия“, “На в лоб, бовдур“).
Помилка в коді. Всі двозначні числа, например: 11, 22, 33, …, 99 програма розпізнає як “НЕ паліндроми”, хоча це не так. Код потребує доопрацювання.
ніякої помилки! Ось перевірка прогоном в операційній системі Linux з компілятором GCC, який куди точніше відповідає стандарту синтаксису C ++:
$ ./palindrom-
Введите любое положительное целое : 11
число палиндром
Введите любое положительное целое : 2
число палиндром
Введите любое положительное целое : 232
число палиндром
Введите любое положительное целое : 233
число не палиндром
Введите любое положительное целое : 2332
число палиндром
Введите любое положительное целое : 23432
число палиндром
Введите любое положительное целое : 234432
число палиндром
Введите любое положительное целое : ^C
Не знаю, чому у вас виходять такі результати (можливо потрібно розставити додаткові дужки через пріоритетів операцій).
А як Паліндром в масиві PHP буде писатись ?
А як Паліндром в масиві на мові PHP буде
Торгова фірма «Схід» в кінці кожного місяця підводить підсумки, тобто вносить запис до книги витрати і виручку від продажу. Складе програму для обчислення суми отриманих доходів за кожен квартал і визначення в якому кварталі було отримано мінімальний дохід.