【例1】完美平方
3.代码实现
class Solution:
def numSquares(self, n):
while n % 4 == 0:
n //= 4
if n % 8 == 7:
return 4
for i in range(n + 1):
temp = i * i
if temp <= n:
if int((n - temp) ** 0.5) ** 2 + temp == n:
return 1 + (0 if temp == 0 else 1)
else:
break
return 3
#主函数
if __name__ == '__main__':
n = 12
print("初始值:", n)
solution = Solution()
print("结果:", solution.numSquares(n))
【例2】判断平方数
3.代码实现
class Solution:
def isPerfectSquare(self, num):
l = 0
r = num
while (r - l > 1):
mid = (l + r) / 2
if (mid * mid <= num):
l = mid
else:
r = mid
ans = l
if (l * l < num):
ans = r
return ans * ans == num
#主函数
if __name__ == '__main__':
num = 16
print("初始值:", num)
solution = Solution()
print("结果:", solution.isPerfectSquare(num))