加载中…
个人资料
无名小浪
无名小浪
  • 博客等级:
  • 博客积分:0
  • 博客访问:239
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

回文数的判断(C语言实现)

(2010-11-09 02:03:25)
标签:

回文数

c语言

it

分类: 软件编程
“回文数“是一种数字。如: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;
}

--------代码结束--------

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有