题解 | #回文对称数#

回文对称数

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

#include <stdio.h>
#include <math.h>
typedef unsigned int uint;//重命名

int main()
{
    uint n = 0;

    while (1 == scanf("%u", &n))
    {
        for (uint i = 1; i <= n; i++)
        {
            if (i < 10)
            {
                // 个位数都是回文数
                printf("%u\n", i);
            }
            else
            {
                // 获取数字i的位数
                uint count = 1;
                uint tmp = i;

                while (tmp /= 10)
                {
                    count++;
                }

                // 获取回文数

                tmp = i;
                // 创建一个回文数
                uint sum = 0;
                // 创建一个除数
                uint mod = pow(10, count - 1);
                // 创建一个乘数
                uint mul = 1;
                while (mod)
                {
                    // tmp%mod表示当前数字的最高位上的数字是多少
                    sum += (mul * (tmp / mod));
                    tmp %= mod;
                    mul *= 10;
                    mod /= 10;
                }

                // 判断回文数与数字i是否相等
                if (i == sum)
                {
                    printf("%u\n", i);
                }
            }
        }
    }

    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:20
点赞 评论 收藏
分享
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务