leetcode 633 求问
题目:
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。
示例1:
输入: 5
输出: True
解释: 1 * 1 + 2 * 2 = 5
示例2:
输入: 3
输出: False
示例1:
输入: 5
输出: True
解释: 1 * 1 + 2 * 2 = 5
示例2:
输入: 3
输出: False
菜鸡首先从想到的就是暴力解法,两个for循环,从1到sqrt(c)遍历,我的代码如下
import math class Solution(object): def judgeSquareSum(self, c): """ :type c: int :rtype: bool """ upper = math.ceil(math.sqrt(c)) for i in range(1,upper): for j in range(i+1,upper): if i*i + j*j == c: return True return False
结果报错得到了float,输入为5的时候我的upper值不是3吗,为什么会有float? 我这样写暴力解法错在哪里了呢?