Определить, является ли введенное число палиндромом - C (СИ)
Формулировка задачи:
Задача: определить, является ли введенное число палиндромом. Подскажите алгоритм, что-то я никак не разберусь.
Решение задачи: «Определить, является ли введенное число палиндромом»
textual
Листинг программы
{
int test, s, pal;
printf("\nVvedite chislo: ");
scanf("%d", &test);
if (test<0) test=-test;
s=test;
pal=0;
while (test) {
pal=pal*10+test%10;
test/=10;
}
if (pal==s) printf("\nchislo %d eto palindrom!\n",s);
}
Объяснение кода листинга программы
- Объявлены три переменные: test, s, pal.
- Выводится сообщение
Vvedite chislo:и считывается число в переменную test с помощью функции scanf. - Если число в переменной test отрицательное, то оно преобразуется в положительное с помощью операции
-test. - Переменная s инициализируется значением переменной test.
- Переменная pal инициализируется нулем.
- В цикле while считываются цифры числа переменной test, начиная с последней.
- Полученное число (последняя цифра числа) добавляется в переменную pal.
- Число test делится на десять.
- Цикл повторяется до тех пор, пока число test больше нуля.
- После окончания цикла проверяется равенство переменных s и pal.
- Если равенство выполняется, то выводится сообщение
chislo %d eto palindrom!, где %d - значение переменной s.