判断一个数字是否是回文

据说是HuaWei 面试试题,不知道真假了。
#include  < stdio.h >

int  check( int  m)
{
        
int  n  = m ,i,d  =   0 ;
        
while (n)
        {
                d 
=  d  *   10   +  n  % 10 ;
                n 
/=   10  ;
        }
        
return  (d  ==  m);
}
int  checkstr( char   *  str)
{
        
int  len, i;
        
if ( ! str  ||   ! (len  =  strlen(str)))  return   0 ;
        
for (i  =  (len - 1 / 2  ; i  >= 0  ; i -- )
                
if (str[i]  !=  str[len  -   1   -  i] ) break ;
        
return  i  <   0  ;
}
int  main()
{
        
int  a[ 5 =  { 12 , 121 , 3443 , 5665 , 2312 };
        
int  i;
        
char  szbuf[ 128 ];
        
for (i  =   0  ; i  <   5 ;i  ++ )
        {
                printf(
" %d == %s   " ,a[i], check(a[i])  ?   " ok " : " no " );
        }
        printf(
"  % " );
        
while (fgets(szbuf, 128 ,stdin)  >   0  )
        {
                szbuf[strlen(szbuf) 
- 1 =   0 ;
                
if (strcmp(szbuf, " exit " ==   0 break ;
                printf(
" %s == %s " ,szbuf, checkstr(szbuf)  ?   " Yes "  :  " No " );
                printf(
"  % " );
        }
        
return   0 ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值