C语言中,什么是回文数?

Python019

C语言中,什么是回文数?,第1张

回文数"回文数"是一种数字.如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数. 任意某一个数通过以下方式相加也可得到如:29+92=121 还有 194+491=586,586+685=1271,1271+1721=2992不过很多数还没有发现此类特征(比如196,下面会讲到)另外个别平方数是回文数 1的平方=111的平方=121111的平方=123211111的平方=1234321。。。。依次类推3×51=1536×21=1264307×62=2670349×7×533=33579上面这些算式,等号左边是两个(或三个)因数相乘,右边是它们的乘积。如果把每个算式中的“×”和“=”去掉,那么,它们都变成回文数,所以,我们不妨把这些算式叫做“回文算式”。还有一些回文算式,等号两边各有两个因数。请看:12×42=24×2134×86=68×43102×402=204×2011012×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+101b。能被11整除。六位的也一样,也能被11整除还有,人们借助电子计算机发现,在完全平方数、完全立方数中的回文数,其比例要比一般自然数中回文数所占的比例大得多。例如11^2=121,22^2=484,7^3=343,11^3=1331,11^4=14641……都是回文数。 人们迄今未能找到五次方,以及更高次幂的回文数。于是数学家们猜想:不存在nk(k≥5n、k均是自然数)形式的回文数。 在电子计算器的实践中,还发现了一桩趣事:任何一个自然数与它的倒序数相加,所得的和再与和的倒序数相加,……如此反复进行下去,经过有限次步骤后,最后必定能得到一个回文数。 这也仅仅是个猜想,因为有些数并不“驯服”。比如说196这个数,按照上述变换规则重复了数十万次,仍未得到回文数。但是人们既不能肯定运算下去永远得不到回文数,也不知道需要再运算多少步才能最终得到回文数。

所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如12321。

以下是判断一个数是否为回文数的代码:

大致思路就是将一个数反着排列一遍,如果和原先的数一样,那么就是回文数。这个排列过程用到了余数和整除。比如986,经过排列后为689,就不是回文数。

扩展资料:

判断一个字符串是否为回文:

要判断一个数n是否回文数,可以利用一个简单的循环就可以解决问题的。先保存好n的一个副本n1,初始化一个变量n2=0,然后每次取n1的末位数后添加到n2的末位,并把原n1的末位去掉。如此循环,当n1为0时循环结束,此时再判断,若n2==n,则n就是一个“回文数”了。#include<stdio.h>int main(){ int n,n1,n2 scanf("%d",&n) n1=n for(n2=0n1n1/=10)n2=n2*10+n1%10 printf("%s\n",n2==n?"Yes":"No") return 0}