http://blog.sina.com.cn/s/blog_5072a15d0100msdb.html 无名小浪
https://zhidao.baidu.com/question/548255538.html zhuhuaizhong
原理:
任何一个数除以10的余数就是该数最后一位
任何一个数除以10的商就是排除掉最后一位后的数(因为 c++ 两个整数相除结果还是整数)
所以 ,一个数1234 就可以通过这种方法得到 123 和 4
接下来对 123 进行同样的操作,就得到 12 和 3
接下来得到 1 和 2
接下来得到 0 和 1
整个过程是个循环,当商不是 0 的时候就一直这么干
每次拿到一个余数,都用来构造新数,新数=新数*10+余数
所以经过四次循环后,我们得到新数 4321 ,如果是回文,那么新数应该等于原数,否则,说明不是回文。
“回文数“是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。
判断一个整数是否是回文数的方法不止一种,最容易想到的一种方法就是:
把整数转换成字符串,然后依次判断字符串前后对称位置的字符是否相等,如果全都相等,则表示该整数是回文数,否则不然。
然而,还有一种更为简洁点的方法则是:
通过对整数的计算,得到该整数的反序整数(最低位变成最高位),判断两者是否相等,是则表示该整数是回文数,否则不然。
以下给出了这种简洁判断方法的C语言代码实例,如下:
--------代码开始--------
#include <stdio.h>
#include <stdlib.h>
int IsHuiWenShu( int );
int main( int argc, char* argv[] )
{
}
int IsHuiWenShu( int number )
{
}
--------代码结束--------