题解 | #回文对称数#

回文对称数

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

想到一个笨方法,欢迎各位交流指教。
主函数输入n 进入循环从1开始判断每一个数字是不是回文数 如果是则打印
判断函数func() 如果传递参数是一位数字直接返回1,设定一个数组用于存放参数的每一位(倒序存放,如果是回文数正序倒序不受影响,所以不用刻意倒回来)
局部变量i用于调整数组收纳每一位所对应的元素下标,并且记录元素个数
从第0位开始对比到第i//2位,如果存在不相等的情况,跳出循环返回0;
#include <stdio.h>
int func(int x)
{
    if(x/10==0)
    {
        return 1;
    }
    int arr[6]={0};
    int i=0;
    while(x)
    {
        arr[i]=x%10;
        i++;
        x/=10;
    }//数字每一位倒序放入数组
    int flag=1;
    for(int j=0;j<i/2;j++)
    {
        if(arr[j]!=arr[i-1-j])
        {
            flag=0;
            break;
        }
    }
    return flag;
}
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        if(func(i))
        {
            printf("%d\n",i);
        }
    }
    return 0;
}
全部评论

相关推荐

牛客633875330号:投不了,相当于空白简历,建议看看其他人简历上的项目和实习经历再说,。非科班无项目无实习,拿什么投计算机?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务