[转]回文数的判断(C语言实现)
原文地址:http://blog.sina.com.cn/s/blog_5072a15d0100msdb.html
“回文数“是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。
判断一个整数是否是回文数的方法不止一种,最容易想到的一种方法就是:
把整数转换成字符串,然后依次判断字符串前后对称位置的字符是否相等,如果全都相等,则表示该整数是回文数,否则不然。
然而,还有一种更为简洁点的方法则是:
通过对整数的计算,得到该整数的反序整数(最低位变成最高位),判断两者是否相等,是则表示该整数是回文数,否则不然。
以下给出了这种简洁判断方法的C语言代码实例,如下:
--------代码开始--------
#include <stdio.h>
#include <stdlib.h>
int IsHuiWenShu( int );
int main( int argc, char* argv[] )
{
int num;
int ret = 0;
while ( 1 )
{
printf( "Please input an interage number:\n" );
scanf( "%d", &num );
if ( num == -100 )
{
printf( "You input %d, so exit.\n", num );
break;
}
ret = IsHuiWenShu( num );
if ( ret == 0 )
{
printf( "The number %d is not huiwenshu.\n", num );
}
else
{
printf( "The number %d is huiwenshu.\n", num );
}
}
return 0;
}
int IsHuiWenShu( int number )
{
int res = 0;
int n = number;
if ( n < 0 )
{
return 0;
}
do
{
res = res * 10 + n % 10;
n = n / 10;
} while ( n );
if ( res == number )
{
return 1;
}
return 0;
}
--------代码结束--------
浙公网安备 33010602011771号