题解 | #自守数#

自守数

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

#include <stdio.h>
#include <stdlib.h>
int main() 
{
    int n,k=0,syl,i;
    
    scanf("%d",&n);
    for(i=0;i<=n;i++)
    {
    syl=(i*i)-i;
    if(i<10&&syl%10==0)
    {
    k++;
    continue;
    }
    else 
    {if(i<100&&i>10&&syl%100==0)
    {k++;
    continue;
    }
    else
    {if(i<1000&&i>100&&syl%1000==0)
    {k++;
    continue;
    }
    else{if(i<10000&&i>1000&&syl%1000000==0)
    {k++;
    continue;
    }
    else {
    if(i==10000)
    {k++;
    continue;
    }
    }
    }
    }
    }
    }
    printf("%d",k);
}
因为自守数的平方的尾数等于该数自身,因此利用该性质结合自守数的大小范围来判定一个数是不是自守数,以小于10、10到100、100到1000、1000到10000(不含10000),10000作为区间来判定自守数;区间大小是判定自守数的关键。

#自守数#
全部评论

相关推荐

醉蟀:你不干有的是人干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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