题解 | #自守数#

自守数

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

自然数包括0,判断平方数减去原数能否被10的len(n)次方整除

def get_ans(s):
    ans=0
    for i in range(0,s+1):
        if is_num(i):
            ans+=1
    return ans

def is_num(n):
    mark=n**2
    length=len(str(n))
    return (mark-n)%(10**(length))==0

if __name__=='__main__':
    import sys
    lines = []
    while True:
        line = sys.stdin.readline().strip()
        if line == "":
            break
        lines.append(line)
    # 单个取
    for item in lines:
        print(get_ans(int(item)))
题解-数据结构与算法 文章被收录于专栏

小菜鸟的题解

全部评论
测试了下,你的方法比楼下那个str(pow(i, 2)).endswith(str(i))效率和占用均优将近一半
点赞
送花
回复 分享
发布于 2021-12-18 11:40

相关推荐

1 1 评论
分享
牛客网
牛客企业服务