当前位置:在线查询网 > 在线百科全书查询 > 回文数

回文数_在线百科全书查询


请输入要查询的词条内容:

回文数


"回文数"是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。



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 不是回文!!!\",x); break;

}

}

if(f==0)

printf("%d 是回文 !\",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);

}

相关分词: 回文