#include<stdio.h>
int palindrome(int n);
int main()
{
int x;
scanf("%d",&x);
palindrome(x);
return 0;
}
int palindrome(int n)
{
int r,re=0;
while(n !=0)
{
r=n%10; // remainder= the number modulus 10
re=r+re*10;
n=n/10;
}
if(n==re) // if the number is equal to the reverse number then it is
// palindrome otherwise not palindrome.
printf("Palindrome");
else
printf("Not Palindrome");
}
答案 0 :(得分:1)
当您的代码到达while
函数中的palindrome
循环时,n
的值变为 0 ,然后将其与{ {1}}是re
的反向版本,除非n
的值本身是 strong 文本,否则每次答案都是不是回文
您应该:
n
的值复制到某个变量中,然后将其与n
进行比较,而不是将re
与re
进行比较。n
函数的末尾放置一个虚拟return
。