


Проверка Палиндромом C++
Добрый вечер. Как написать программу для проверки числа на палиндромом? Примерно суть ясна, через остаток на деление, но с кодом у меня проблемы. Натолкните на мысль. Спасибо
#include<stdio.h
#include<string.h
#include p1; ++p1, --p2)
{
*p1 ^= *p2;
*p2 ^= *p1;
*p1 ^= *p2;
}
return str;
}
int main()
{
char a[100], b[100];
//Get the number from user.
printf("Enter the string to check if it is a palindrome\n");
gets(a);
//copy input to another array b
strcpy(b,a);
//Reverse it.
strrev(b);
/*Compare it with the number entered by the user.If both are same then print palindrome number*/
if( strcmp(a,b) == 0 )
printf("\nEntered string is a palindrome.\n");
else
printf("\nEntered string is not a palindrome.\n");
getch();
return 0;
}
Ужас... Еще и цикл до середины числа предлагают.
int z,y,x=0;
cin >> y; z = y;
while (y > 0) { x *= 10; x += y % 10; y /= 10; }
if (z == x)cout << "yes"; else cout << "no";
Хорошо рассказано, что такое палиндром и как проверить, является ли число палиндромом [ссылка заблокирована по решению администрации проекта] А так же приведен код программы, использующий эту функцию.
Выше идеальный вариант подсказали.
Можно без превращения прочитать, как строку. Сделать цикл до половины числа и сравнивать 1 символ с последним, второй с предпоследним и т. д.
Это как один из вариантов