"回文数"是一种数字.如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数.
任意某一个数通过以下方式相加也可得到
如:29+92=121 还有 194+491=685,586+685=1271,1271+1721=2992
不过很多数还没有发现此类特征(比如196,下面会讲到)
另外个别平方数是回文数
1的平方=1
11的平方=121
111的平方=12321
1111的平方=1234321
在程序设计中,我们常常会遇到回文数的判断问题,这就需要我们对回文数有所了解,并能编写回文数函数予以调用。在此我用C语言编写了个回文数函数,其中 N 有读者自己定义,其调用很方便。
回文数函数代码如下:
#include
#include
#define N 80
int fun(char *str)
{
char a[N],b[N];
int i=0,j=0;
while(*str)
a[i++]=*str++;
a[i]='\0';
while(i>0)
b[j++]=a[--i];
b[j]='\0';
return (strcmp(a,b)==0);
}
问题补充:
人们迄今未能找到五次方,以及更高次幂的回文数。于是数学家们猜想:不存在nk(k≥5;n、k均是自然数)形式的回文数。
在电子计算器的实践中,还发现了一桩趣事:任何一个自然数与它的倒序数相加,所得的和再与和的倒序数相加,……如此反复进行下去,经过有限次步骤后,最后必定能得到一个回文数。
这也仅仅是个猜想,因为有些数并不“驯服”。比如说196这个数,按照上述变换规则重复了数十万次,仍未得到回文数。但是人们既不能肯定运算下去永远得不到回文数,也不知道需要再运算多少步才能最终得到回文数。