题解 | #回文对称数#

回文对称数

https://www.nowcoder.com/practice/5b143af8328f4e42adf5e10397ae44ef

#include <stdio.h>
int main()
{
    int num,n;
    scanf("%d",&n);
    for (num=1;num<n;num++)
    {   
        int cnt=0,i=num,flag=1;
        while(i)//求这个整数的位数
        {
            cnt++;
            i/=10;
        } 
        switch(cnt)//根据位数使用判断回文的方式
        {
            case 2:
            if(num/10!=num%10)
            flag=0;//如果不是回文就清除标志
            break;
            case 3:
            if(num/100!=num%10)
            flag=0;
            break;
            case 4:
            if(num/1000!=num%10||num/100%10!=num/10%10)
            flag=0;
            break;
            case 5:
            if(num/10000!=num%10||num/1000%10!=num/10%10)
            flag=0;
            break;
            default:          
            break;
        }      
        if(flag)
        printf("%d\n",num); 
        flag=1; //复位回文标志
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务