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))