题解 | #自守数#

自守数

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

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
    int a, b=0;
    while (scanf("%d ", &a) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        for(int i=0;i<=a;i++)
        {
            int pf=i*i;
            if(i%10==0||i%10==5||i%10==6||i%10==1)
            {
                char chi[10000]={0},ch[10000]={0};
                sprintf(chi, "%d",i);
                sprintf(ch, "%d",pf);
                int ilen=strlen(chi);
                int len=strlen(ch);
                int k=0;
                for(int j=0;j<ilen;j++)
                {
                    if(chi[j]!=ch[len-ilen+j])
                    {
                        k=1;
                        break;
                    }
                }

                if(k!=1)
                    b++;

            }
        }
        printf("%d\n", b);
    }
    return 0;
}

全部评论

相关推荐

程序员小白条:这还能没面试?不过简历确实不像国内写的简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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