leetcode 633 求问

题目:
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。

示例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? 我这样写暴力解法错在哪里了呢?



#leetcode#
全部评论
print一下upper的类型吧
点赞 回复 分享
发布于 2019-12-23 12:28
一个循环 只判断到c^2 / 2
点赞 回复 分享
发布于 2019-12-23 12:08
本地看一下upper的类型吧
点赞 回复 分享
发布于 2019-12-22 17:16
可能是3.0?强转试一下应该就行
点赞 回复 分享
发布于 2019-12-22 17:12

相关推荐

评论
点赞
收藏
分享

创作者周榜

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