判断一个数是否为回文数,有多种方法,常见的有三种:
1.将输入数字转化为字符串。回文数关于中心对称,只需比较对称的数是否相等即可。
2.采用除10取余的方法,从最低位开始,依次取出该数的各位数字,然后用最低为充当最高位,按反序构成新的数,再与原数比较。
3.采用栈的方式。判断出栈的元素与栈内字符是否相等。
附上第二种解法的程序:
#include<iostream>
using namespace std;
int main()
{
bool hui(int n);
int a;
while(cin>>a)
{
if(hui(a))
cout<<"true"<<endl;
else
cout<<"false"<<endl;
}
return 0;
}
bool hui(int n)
{
unsigned i=n;
unsigned m=0;
while(i>0)
{
m=m*10+i%10;
i/=10;
}
return m==n;
}