697. 判断是否为平方数之和(经典)

697. 判断是否为平方数之和

中文 English

给一个整数 c, 你需要判断是否存在两个整数 a 和 b 使得 a^2 + b^2 = c.

样例

样例 1:

输入 : n = 5
输出 : true
说明 : 1 * 1 + 2 * 2 = 5

样例 2:

输入 : n = -5
输出 : false
输入测试数据 (每行一个参数) 如何理解测试数据?(苦思好久)
class Solution:
    '''
    大致思路:
    1.只要围绕着,是否这两个动态的数平方和是否求平方和就可以,初始化count,一个是a(固定一定为平方和,从1开始一直递增平方),另一个是num-a,判断是否是平方根,如果一直到
   count大于num的平方根取整,仍没有找到,则返回False,否则True。其余情况,比如num本身就可以求平方,另一个自然就是0,也返回true。
''' def checkSumOfSquareNumbers(self,num): if num < 0: return False def issqrt(n): return int(math.sqrt(n))**2 == n l = 0 count = 1 j = int(math.sqrt(num)) while issqrt(num-l) != True: l = count**2 count += 1 #一直到count大于num的平方根的时候,还不存在则跳出循环 if count > j: print(l) return False return True

猜你喜欢

转载自www.cnblogs.com/yunxintryyoubest/p/12728999.html