判断回文数的函数--c的实现

判断回文数的C语言实现

  • 所谓回文数,即palindrome ,指从前向后读或者从后向前读数的大小不发生改变的数,比如121、34543这些,在这个算法中,传入一个long类型的参数m,然后把m的值赋给i,当i非零时执行while语句,while语句内部功能是将一个长整形数i转化成这个i从右往左重新排列组成的“倒过来的数”,再把这个倒过来的数和原来的m进行比较就实现了判断是否是回文数的功能。
  • 为了更好的理解while内的程序,先让我们简单理解一下:一个数对十取模,得到的数就是它的个位数(比如1886%10=6),一个整形数据除以十得到的数就是它去掉个位数之后组成的比原来少一位数的数(比如1886/10=188)。
  • 在这个程序中我们不断把一个长整形数据的个位数分离出来,并把原长整形数从右向左逐渐减少位数,再经过n=n*10+i%10这句程序,就可以得出一个长整形数的“倒过来的数”,例如1886,进入while之前,i=1886,n=0。第一遍进入while,n=6,i=188;满足while条件,第二遍:n=68,i=18;第三遍:n=688,i=1;第四遍:n=6881,i=0;跳出while语句,此时发现6881!=1886,判断得出m不是回文数,返回值为0,实现了判断回文数的功能;
int IsPalindrome(long m)
{
        long i, n;
    i=m;
    n=0;
    while(i)
{
        n=n*10+i%10;
        i/=10;
}
        return m==n; //返回1说明就是回文数了.
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值