定义:一个整数,它的各位数字如果是左右对称的,则称这个数是对称数。
例如:1234321、123321等。
一般来说,位数大于或等于两位。最小的对称数是11,没有最大的对称数,因为数位是无穷的。
#include <iostream>
using namespace std;
bool isSymmetryNum_test(const long n)
{
int result=0;
int temp=n;
while(temp)
{
result = result*10 + temp%10;
temp = temp/10;
}
if(result==n)
return true;
else
return false;
}
bool isSymmetryNum(const long n)
{
int i,j;
int array[32];
int temp=n;
int length=0;
for(i=0;temp;i++)
{
array[i]= temp%10;
temp = temp/10;
length++;
}
for(j=0;j<(length/2);j++)
{
if(array[j]!=array[length-1-j])
return false;
}
return true;
}
int main()
{
long num;
cout<<"Please input a number:"<<endl;
cin>>num;
if(isSymmetryNum_test(num))
cout<<"YES\n";
else
cout<<"NO\n";
if(isSymmetryNum(num))
cout<<"YES\n";
else
cout<<"NO\n";
return 0;
}
参考:http://blog.youkuaiyun.com/xintingandzhouyang/article/details/7069817