标题：回文数
1000以内的回文数
在自然数中，最小的回文数是0，其次是1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99,101,111,121,131,141,151,161,171,181,191,202,212,222,232,242,252,262,272,282,292,303,313,323,333,343,353,363,373,383,393,404,414,424,434,444,454,464,474,484,494,505,515,525,535,545,555,565,575,585,595,606,616,626,636,646,656,666,676,686,696,707,717,727,737,747,757,767,777,787,797,808,818,828,838,848,858,868,878,888,898,909,919,929,939,949,959,969,979,989,999.
平方回数
定义：一个回文数，它同时还是某一个数的平方，这样的数字叫做平方回数。例如：121。
100以上至1000以内的平方回数只有3个，分别是：121、484、676。
其中，121是11的平方。
484是22的平方，同时还是121的4倍。
676是26的平方，同时还是169的4倍。
简介
JAVA编程实现public class Plalindrome {
public static void main(String[] args) {
System.out.println("11 is " + (isPlalindrome(11)? "": "not ") + "Plalindrome number");
System.out.println("123 is " + (isPlalindrome(123)? "": "not ") + "Plalindrome number");
System.out.println("17251 is " + (isPlalindrome(17251)? "": "not ") + "Plalindrome number");
System.out.println("2882 is " + (isPlalindrome(2882)? "": "not ") + "Plalindrome number");
}
public static boolean isPlalindrome(int number){
//此方法实现判断数字是不是回文数
String num = String.valueOf(number);
return new StringBuffer(num).reverse().toString().equalsIgnoreCase(num);
}
}
--------------- 
11 is Plalindrome number
123 is not Plalindrome number
17251 is not Plalindrome number
2882 is Plalindrome number
举例任意某一个数通过以下方式相加也可得到
如：29+92=121 还有 194+491=685，586+685=1271，1271+1721=2992
不过很多数还没有发现此类特征（比如196,下面会讲到）
另外个别平方数是回文数 
1的平方=1
11的平方=121
111的平方=12321
1111的平方=1234321
……
……
依次类推
3×51=153
6×21=126
4307×62=267034
9×7×533=33579
上面这些算式,等号左边是两个(或三个)因数相乘,右边是它们的乘积。如果把每个算式中的“×”和“=”去掉，那么，它们都变成回文数，所以，我们不妨把这些算式叫做“回文算式”。还有一些回文算式，等号两边各有两个因数。请看：
12×42=24×21
34×86=68×43
102×402=204×201
1012×4202=2024×2101
不知你是否注意到，如果分别把上面的回文算式等号两边的因数交换位置，得到的仍是一个回文算式，比如：分别把“12×42=24×21”等号两边的因数交换位置，得到算式是：
42×12=21×24
这仍是一个回文算式。
还有更奇妙的回文算式，请看：
12×231=132×21（积是2772）
12×4032=2304×21（积是48384）
这种回文算式，连乘积都是回文数。
四位的回文数有一个特点，就是它决不会是一个质数。设它为abba，那它等于a*1000+b*100+b*10+a，1001a+110b。能被11整除。
六位的也一样，也能被11整除
还有，人们借助电子计算机发现，在完全平方数、完全立方数中的回文数，其比例要比一般自然数中回文数所占的比例大得多。例如11^2=121，22^2=484，7^3=343,11^3=1331，11^4=14641……都是回文数。
国内外研究现状人们迄今未能找到五次方，以及更高次幂的回文数。于是数学家们猜想：不存在nk(k≥5;n、k均是自然数)形式的回文数。 
在电子计算器的实践中，还发现了一桩趣事：任何一个自然数与它的倒序数相加，所得的和再与和的倒序数相加，……如此反复进行下去，经过有限次步骤后，最后必定能得到一个回文数。 
这也仅仅是个猜想，因为有些数并不“驯服”。比如说196这个数，按照上述变换规则重复了数十万次，仍未得到回文数。但是人们既不能肯定运算下去永远得不到回文数，也不知道需要再运算多少步才能最终得到回文数。
用visual basic6.0 计算回文数
for i = 100 to 99999 '这里从100开始 后面可以随便填，我这里填99999 表示所有3位数到五位数之间的回文数
if StrReverse(i)=i then print i '用StrReverse函数 判断倒序后的数和原来数是否相同，如果相同者表示此数为回文数
next
用C语言编程计算回文数
#include<stdio.h>
int x,y;
judge(int * data,int len)
{
int i,j,f=0;
for(i=0,j=len-1; i<=j; i++,j--)
{
if(*(data+i)!=*(data+j))
{
f=1; printf("%d 不是回文!!!\n",x); break;
}
}
if(f==0)
printf("%d 是回文 !\n",x); 
}
separate(int *data,int n)
{
int j,k,t;
y=0;
while(n!=0)
{
*(data+y)=n%10; n=n/10; y++; 
}
*(data+y)='\0';
for(j=0,k=y-1; j<=k; j++,k--)
{
t=*(data+j); *(data+j)=*(data+k); *(data+k)=t;
}
}
void main()
{
int a[99];
printf("请输入一个正整数：");
scanf("%d",&x);
separate(a,x);
judge(a,y);
}
另外一种实现方法（c++）更简便
#include<iostream>
using namespace std;
bool symm(long m)
{
long temp = m,n=0;
while (temp)
{
n = n*10+temp%10;
temp = temp/10;
}
return (m == n);
} 
int main(int argc, _TCHAR* argv[])
{
long m;
cout<<"请输入一个整数：";
cin>>m;
cout<<"输入了"<<symm(m)<<"个回文数！";
return 0; 
}