题解 | #自守数#

自守数

https://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e

解题思路

将待判断的值先用if来判断是几位数

一位数

两位数

三位数

四位数

五位数

然后在里面分别求出平方以后对应后几位数的值和原始值比较

76^2 = 5776为例

temp保存 i 的平方

首先判断 i (76)是两位数,然后求temp的两位尾数,也就是temp%100和 i 进行对比,如果正确num++

#include <stdio.h>

int main() {
    int a=0,i=0;
    int num=1,temp=0;
    scanf("%d",&a);
    for(i=1;i<=a;i++)
    {
        temp=i*i;//平方
        if(i<10)
        {
            if(temp%10==i)
            {
                num++;
                continue;
            }
        }
        else if(i>=10&&i<100)
        {
            if(temp%100==i)
            {
                num++;
                continue;
            }
        }
        else if(i>=100&&i<1000)
        {
            if(temp%1000==i)
            {
                num++;
                continue;
            }
        }
        else if(i>=1000&&i<10000)
        {
            if(temp%10000==i)
            {
                num++;
                continue;
            }
        }
        else if(temp%100000==10000)
        {
            num++;
        }
    }
    printf("%d",num);
    return 0;
}

全部评论

相关推荐

美团 客服平台 薪资应该是后端算高的了,我们姑且称为nk了,给3w签字费
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务