NC273937:小红的完全平方数(python3)

垃圾小白来随便写写。。。。。。

简单思路

从n往上每次+2,判断当前数是不是完全平方数;向下-2同理

这种思路简单但是很容易超时

快速AC

计算sqrt(n)的平方,和sqrt(n)+1的平方,查看它们和n的距离(如果不满足是2的倍数就再-1或+1继续算)哪个近输出哪个

n = int(input())
cnt1 = 1
min_n = max_n = n
i = 0
while cnt1%2 != 0:
    min_sqrt = int(math.sqrt(n))-i
    min_square = min_sqrt**2
    cnt1 = int(abs(min_square-n))
    i+=1
j = 1
cnt2 =1
while cnt2%2 !=0:
    max_sqrt = int(math.sqrt(n))+j
    max_square = max_sqrt**2
    cnt2 = int(abs(max_square-n))
    j+=1

print(int(cnt1/2) if cnt1<cnt2 else int(cnt2/2))

全部评论

相关推荐

07-02 13:50
闽江学院 Java
点赞 评论 收藏
分享
一tiao酸菜鱼:秋招还没正式开始呢,就准备有结果了。。。。?
点赞 评论 收藏
分享
半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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