Чтобы проверить, является ли число палиндромом в C, вы можете использовать различные методы. Вот несколько подходов:
- Использование перевернутого числа: переверните заданное число и сравните его с исходным числом. Если они одинаковы, то число является палиндромом.
#include <stdio.h>
int isPalindrome(int number)
{
int reversedNumber = 0;
int originalNumber = number;
while (number != 0)
{
int remainder = number % 10;
reversedNumber = reversedNumber * 10 + remainder;
number /= 10;
}
if (originalNumber == reversedNumber)
return 1;
else
return 0;
}
int main()
{
int number;
printf("Enter a number: ");
scanf("%d", &number);
if (isPalindrome(number))
printf("%d is a palindrome.\n", number);
else
printf("%d is not a palindrome.\n", number);
return 0;
}
- Использование массива: преобразуйте число в массив цифр. Затем сравните цифры начала и конца массива. Если они совпадают для всех пар, то число является палиндромом.
#include <stdio.h>
int isPalindrome(int number)
{
int digits[10];
int count = 0;
int temp = number;
while (temp != 0)
{
digits[count] = temp % 10;
temp /= 10;
count++;
}
int i, j;
for (i = 0, j = count - 1; i < count / 2; i++, j--)
{
if (digits[i] != digits[j])
return 0;
}
return 1;
}
int main()
{
int number;
printf("Enter a number: ");
scanf("%d", &number);
if (isPalindrome(number))
printf("%d is a palindrome.\n", number);
else
printf("%d is not a palindrome.\n", number);
return 0;
}
- Использование строки: преобразуйте число в строку, а затем проверьте, является ли строка палиндромом, сравнивая символы с начала и конца.
#include <stdio.h>
#include <string.h>
int isPalindrome(int number)
{
char numString[20];
sprintf(numString, "%d", number);
int length = strlen(numString);
int i, j;
for (i = 0, j = length - 1; i < length / 2; i++, j--)
{
if (numString[i] != numString[j])
return 0;
}
return 1;
}
int main()
{
int number;
printf("Enter a number: ");
scanf("%d", &number);
if (isPalindrome(number))
printf("%d is a palindrome.\n", number);
else
printf("%d is not a palindrome.\n", number);
return 0;
}